Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101900678
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: C/C++

2008-04-17 22:17:14

 来源:hur.cn

#else
程序段2
#endif

   它的功能是,如常量表达式的值为真(非0),则对程序段1 进行编译,否则对程序段2进行编译。因此可以使程序在不同条件下,完成不同的功能

#define R 1
main(){
  float c,r,s;
  printf ("input a number: ");
  scanf("%f",&c);
  #if R
   r=3.14159*c*c;
   printf("area of round is: %f\n",r);
  #else
   s=c*c;
   printf("area of square is: %f\n",s);
  #endif
}

   本例中采用了第三种形式的条件编译。在程序第一行宏定义中,定义R为1,因此在条件编译时,常量表达式的值为真, 故计算并输出圆面积。上面介绍的条件编译当然也可以用条件语句来实现。 但是用条件语句将会对整个源程序进行编译,生成的目标代码程序很长,而采用条件编译,则根据条件只编译其中的程序段1或程序段2, 生成的目标程序较短。如果条件选择的程序段很长, 采用条件编译的方法是十分必要的。
阅读(678) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~