• 关于ifndef的解释

ifndef 是“if not defined”的简写,是预处理功能(宏定义、文件包含、条件编译)当中的条件编译,可以根据是否已经定义了一个变量来进行分支选择。

  • ifndef的作用

  1. 防止头文件的重复包含和编译

把头文件的内容都放在#ifndef和#endif中,不管你的头文件会不会被多个文件引用,最好都加上这个。格式是这样的:

#ifndef #define ............#endif

的写法:可以自由命名,但每个头文件的这个“标识”都应该是唯一的。标识的明明规则一般是头文件名全大写,前面加下划线,并把文件名中的”.”也变成下划线,如:study.h

#ifndef _STUDY_H#define _STUDY_H............#endif
  1. 便于程序的调试和移植

作为条件语句,调试程序时,常常需要对程序中的内容进行选择性地编译判断,即可以根据一定的条件选择是否编译。

举例说明:当“标识符”没有由#define定义过,则编译“程序段1”,否则编译“程序段2”

#ifndef 标识符程序段 1#else程序段 2#endif