C/C++头文件的保护
头文件的保护
头文件防止重复引用
#include指令的原理是复制一份文件到这个文件中,不可避免的,如果有多个头文件互相#include会导致重复声明的问题,所以需要一种方法来避免重复声明的问题。 在C++中有两种方式防止重复引用头文件 分别是:
#pragma once预编译指令
这个指令可以防止#include指令重复复制同一个头文件到最终文件中。
使用方法很简单,只需要在头文件的前面添加#pragma once
#pragma once
void Log(const char* message);
void InitLog();
struct Player {};
#ifndef指令
使用#ifndef指令判断一个标识符是否被声明,如果声明就不执行代码块中的代码。 这个防止重复引用的方法通常存在于老的代码中。
#ifndef _LOG_H
#define _LOG_H
void Log(const char* message);
void InitLog();
struct Player {};
#endif _LOG_H
#ifndef _LOG_H
// 因为上面已经定义了_LOG_H
// 所以下面的代码不会声明
#define _LOG_H
void Log(const char* message);
void InitLog();
struct Player {};
#endif _LOG_H