关于ifndef的解释
ifndef 是“if not defined”的简写,是预处理功能(宏定义、文件包含、条件编译)当中的条件编译,可以根据是否已经定义了一个变量来进行分支选择。
ifndef的作用
防止头文件的重复包含和编译
把头文件的内容都放在#ifndef和#endif中,不管你的头文件会不会被多个文件引用,最好都加上这个。格式是这样的:
#ifndef <标识>
#define <标识>
......
......
#endif
<标识>的写法:可以自由命名,但每个头文件的这个“标识”都应该是唯一的。标识的明明规则一般是头文件名全大写,前面加下划线,并把文件名中的"."也变成下划线,如:study.h
#ifndef _STUDY_H
#define _STUDY_H
......
......
#endif
便于程序的调试和移植
作为条件语句,调试程序时,常常需要对程序中的内容进行选择性地编译判断,即可以根据一定的条件选择是否编译。
举例说明:当“标识符”没有由#define定义过,则编译“程序段1”,否则编译“程序段2”
#ifndef 标识符
程序段 1
#else
程序段 2
#endif