(一)条件编译
条件编译,即:有条件的编译,即:根据条件去编译代码,在编译阶段时,就对代码做出取舍,有的编译,有的不编译,这样比写成一个个判断函数更有效率;比如:工程代码大部分的地方都类似,只有个别语句因为使用的硬件版本不同,就可以使用条件编译增加可移植性。
1、条件编译指令
C/C++ 常用的条件编译指令有:
指令 | 说明 |
---|---|
#if | 编译预处理中的条件命令,相当于C语法中的if语句 |
#ifdef | 判断某个宏是否被定义,若已定义,执行随后的语句 |
#ifndef | 与 #ifdef 相反,判断某个宏是否未被定义 |
#elif | 若 #if、#ifdef、#ifndef 或前面的 #elif 条件不满足,则执行 #elif 之后的语句,相当于C语法中的else-if |
#else | 与 #if、#ifdef、#ifndef 对应,若这些条件不满足,则执行 #else 之后的语句,相当于C语法中的else |
#endif | #if、#ifdef、#ifndef 这些条件命令的结束标志 |
使用说明:
1)#if、#ifdef、#ifndef 必须与 #endif 配对使用;
2)在判断某个宏是否被定义时,应当避免使用#if,因为该宏的值可能就是被定义为0。而应当使用 #ifdef 或 #ifndef;
3)#if、#elif 之后的宏只能是对象宏。如果宏未定义,或者该宏是函数宏,则编译器可能会有对应宏未定义的警告。