#ifdef:它是if define 的简写
#ifndef:它是if not define 的简写
它们都是宏定义,确切的说是预处理功能三种(宏定义、文件包含、条件编译)中的一种----条件编译
预编译指令 #if #else ,#ifndef...的意义是条件编译,只对后面的代码起作用.
在头文件编写类如#ifndef 的语句只是为了防止该头文件被其他头文件多次包含.
在头文件编写类如#ifndef 的语句 只是对外部变量,类型的声明有作用.
常见的一些形式:
#ifdef A
code1
#endif
它的作用是:如果宏定义了A,则执行 code1
#ifndef A
#define A
code 1
#else
code 2
#endif
它的作用是:当A没有由#define定义过,则编译 code1 ,否则编译 code 2
#if 表达式
code 1
#else
code 2
#endif
它的作用是:当表达式值为真时,编译 code 1,否则则编译code 2。当没有程序段2时,直接是#if---#endif