头文件中的?#ifndef/#define/#endif?是为了防止该头文件被同一个c文件重复引用。
“被重复引用”是指一个头文件在同一个c文件中被include了多次,这种错误常常是由于include嵌套造成的。比如:存在a1.h文件#include "a2.h"而此时b.c文件导入了#include "a1.h" 和#include "a2.h"此时就会造成a2.h重复引用。
头文件被重复引用会产生什么样的后果呢?
1、有些头文件重复引用只是增加了编译工作的工作量,不会引起太大的问题,仅仅是编译效率低一些,但是对于大工程而言编译效率低下那将是一件多么痛苦的事情。
2、有些头文件重复包含,会引起错误,比如在头文件中定义了全局变量(虽然这种方式不被推荐,但确实是C规范允许的),这种会引起重复定义。
下面给一个#ifndef/#define/#endif的格式:
#ifndef DSP2803x_ADC_H意思是"if not define DSP2803x_Adc.h" ?如果不存在DSP2803x_Adc.h
接着的语句应该#define DSP2803x_ADC_H??就引入DSP2803x_Adc.h
最后一句应该写#endif ? 否则不需要引入