C++#ifndef与#ifdef的区别是什么?
2022-12-11 · 百度认证:北京惠企网络技术有限公司官方账号
一、使用场景不同:
#ifndef使用场景为:
1、头文件中使用,防止头文件被多重调用。
2、作为测试使用,省去注释代码的麻烦。
3、作为不同角色或者场景的判断使用。
#ifdef使用场景:
判断某个宏是否被定义,若已定义,执行随后的语句。
二、含义不同:
#ifndef表示ifnotdefine。
#ifdef表示ifdefine。
扩展资料:
#ifndef起到的效果是防止一个源文件两次包含同一个头文件,而不是防止两个源文件包含同一个头文件。
而编译时,这两个C文件要一同编译成一个可运行文件。
把头文件的内容都放在#ifndef和#endif中。不管头文件会不会被多个文件引用,都要加上这个。
一般格式是这样的:
#ifndef <标识>
#define <标识>.
...........
#endif<标识>
在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。
标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:
#ifndef_STDIO_H_#define_STDIO_H_......#endif.
在#ifndef中定义变量出现的问题(一般不定义在#ifndef中)。
#ifndefAAA#defineAAA...inti;...#endif
参考资料: