当前位置:知之问问>百科知识>条件编译的三种形式

条件编译的三种形式

2023-08-06 13:05:02 编辑:join 浏览量:547

条件编译的三种形式

1.#ifdef标识符程序段1#else程序段2#enf它的功能是,如果标识符已被#define命令定义过则对程序段1进行编译;否则对程序段2进行编译。如果没有程序段2(它为空),本格式中的#else可以没有,即可以写为:#ifdef标识符程序段#endif#defineNUMokmain(){structstu{intnum;char*name;charsex;floatscore;}*ps;ps=(structstu*)malloc(sizeof(structstu));ps——num=102;ps——name="Zhangping";ps——sex="M";ps——score=62.5;#ifdefNUMprintf("Number=%dScore=%f",ps——num,ps——score);#elseprintf("Name=%sSex=%c1.#if常量表达式程序段1#else程序段2#enf它的功能是,如常量表达式的值为真(非0),则对程序段1进行编译,否则对程序段2进行编译。因此可以使程序在不同条件下,完成不同的功能#defineR1main(){floatc,r,s;printf("inputanumber:");scanf("%f",&c);#ifRr=3.14159*c*c;printf("areaofroundis:%f",r);#elses=c*c;printf("areaofsquareis:%f",s);#endif}2.本例中采用了第三种形式的条件编译。在程序第一行宏定义中,定义R为1,因此在条件编译时,常量表达式的值为真,故计算并输出圆面积。上面介绍的条件编译当然也可以用条件语句来实现。但是用条件语句将会对整个源程序进行编译,生成的目标代码程序很长,而采用条件编译,则根据条件只编译其中的程序段1或程序段;2,生成的目标程序较短。如果条件选择的程序段很长,采用条件编译的方法是十分必要的。

标签:编译,三种,形式

版权声明:文章由 知之问问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.zhzhwenwen.com/article/205377.html
热门文章