在c语言中,头文件中的加入 #ifndef #define #endif 目的防止该头文件被重复引用
其实“被重复引用”是指一个头文件在同一个c文件中被include了多次,这种错误是由于include嵌套造成的。比如在a.h文件#include "c.h" 而此时b.cpp文件包含#include "a.h" 和#include "c.h"此时就会造成c.h重复引用
头文件被重复引用引起的后果:
有些头文件重复引用只是增加了编译工作的工作量,不会引起太大的问题,仅仅是编译效率低一些,但是对于大工程而言编译效率低下那将是一件多么痛苦的事情。
有些头文件重复包含,会引起错误,比如在头文件中定义了全局变量(虽然这种方式不被推荐,但确实是C规范允许的)这种会引起重复定义。
使用格式
#ifndef A_H (if not 定义 a.h)
#define A_H (引入 a.h)
#include <xxx.h>
#include "xxx.h"
void func(int a);
#endif A_H