分类:
2009-10-09 21:07:54
预处理提供条件编译的功能,可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件,这对程序的调试、移植和修改非常有用,对条件编译总结如下:
对源程序的各部分有选择的进行编译称为条件编译。
(1).常量表达式
#ifdef 常量表达式1
程序段1
#elif 常量表达式2
程序段2
#elif 常量表达式3
程序段3
...
#elif 常量表达式(n-1)
程序段(n-1)
else
程序段n
#endif
例如:在有多种标识符而只使用某一种标识符时,使用条件编译如下:
#ifdef 标识符1
程序段1
#elif defined 标识符2
程序段2
#endif
头文件中如下申明:
#define EEPROM_I2C
//#define CS8953_I2C
某文件的程序段中:
#ifdef CS8953_I2C I2c
WriteByte(fd,0xD2);//发送器件地址
#elif defined EEPROM_I2C
I2cWriteByte(fd,0xA0);//发送器件地址
#endif
只需在注释和使用标识符就可以选择执行那段程序。
它的用途是:检查常量表达式,如为真,编译后续程序,并结束本次条件编译;如常量表达式为假,则编译程序段n,然后结束。
(2).标识符定义条件
#ifdef 标识符
程序段1
#else 程序段2
#endif
它的作用是:标识符已被定义过,编译程序段1,否则编译程序段2.
(3).标识符未定义条件
#ifndef 标识符
程序段1
#else
程序段2
#endif
它的作用是:标识符未被#define定义过,编译程序段1,否则编译程序段2