头文件中的 #ifndef/#define/#endif 是指防止该头文件被重复引用;
问:重复引用是指不能在不同的两个文件中使用include来包含这个头文件还是指在所有文件中加入#ifndef/#define/#endif 这些代码;
答:被重复引用”是指一个头文件在同一个cpp文件中被include了多次,这种错误常常是由于include嵌套造成的。比如:存在a.h文件#include "c.h"而此时b.cpp文件导入了#include “a.h” 和#include "c.h"此时就会造成c.h重复引用
问:头文件被重复引用的后果是什么?
答:1、首先会降低编译效率;
2、如果在头文件中定义了全局变量,在重复引用的情况下会产生编译错误;
#ifndef GRAPHICS_H // 防止graphics.h被重复引用
#define GRAPHICS_H
#include <math.h> // 引用标准库的头文件
…
#include “header.h” // 引用非标准库的头文件
…
void Function1(…); // 全局函数声明
…
class Box // 类结构声明
{
…
};
#endif