在使用#ifndef
时常见的错误有:
- 忘记包含
#endif
,导致未关闭#ifndef
的条件编译指令。
#ifndef MY_HEADER_H #define MY_HEADER_H // code here
- 定义
#ifndef
时,宏名错误或者不一致。
#ifndef MY_HEADER_H #define ANOTHER_HEADER_H // code here #endif
- 在同一个文件中重复定义
#ifndef
。
#ifndef MY_HEADER_H #define MY_HEADER_H // code here #ifndef MY_HEADER_H #define MY_HEADER_H // code here #endif
- 在头文件中嵌套
#ifndef
,导致混乱的条件编译逻辑。
#ifndef MY_HEADER_H #define MY_HEADER_H #ifndef ANOTHER_HEADER_H #define ANOTHER_HEADER_H // code here #endif #endif
避免这些常见错误可以通过仔细检查#ifndef
和#endif
之间的闭合关系,以及确保宏名的一致性。