C++ 预处理编译指令#ifndef
一、定义介绍
#ifndef条件指示符是c++中的预处理编译指令,是一种宏定义,它是以根据是否已经定义了一个变量来进行分支选择。通常与#endif搭配使用。
二、功能作用:
判断名称是否被#define定义过,防止头文件多重包含,避免重复出错。如果使用#ifndef加名称,发现名称已经被定义,返回false,直接跳出#endif,执行#endif后面的内容;如果未定义,则执行#ifndef到#endif之间的语句。
三、使用方法
判断重包含
实现步骤:
1.#ifndef加上要被判断的名称,命名随意,但最好遵循大写以及文件加下划线“_”的规则
2.通常情况下,如果1名称确定没有被定义过,这里用#define加标识符(名称)进行定义
3.在中间写你需要的内容,即代码段
4.#endif表明条件编译结束
代码实例:
#ifndef WHAT//编译器首次遇到该文件时,判断名称WHAT是否被定义过,如果是,直接执行#endif后面的语句;如果不是,执行#ifndef与#endif之间的语句
#define WHAT//如果上面判断WHAT未被定义过,用#define定义WHAT
int a;//#ifndef与#endif之间的语句,随便你写内容
#endif//条件编译结束
四、注意事项
#ifndef后面跟的是一个名称,可以是类名也可以是文件名。
名词解释:
名称:名称可以是变量、函数、结构、枚举、类以及类和结构的成员
来自:九七的C++教程(转载请注明出处)