c语言中的 #ifndef/#define/#endif的作用

在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


版权声明:本文为armkits原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。