Chinaunix首页 | 论坛 | 博客
  • 博客访问: 387284
  • 博文数量: 115
  • 博客积分: 2501
  • 博客等级: 少校
  • 技术积分: 1009
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-23 17:05
文章分类

全部博文(115)

文章存档

2011年(2)

2010年(86)

2009年(27)

我的朋友

分类:

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

阅读(539) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~