3. 第三種形式:
程序段1
#else
程序段2
#endif
它的功能是,如常量表達(dá)式的值為真(非0),則對(duì)程序段1 進(jìn)行編譯,否則對(duì)程序段2進(jìn)行編譯。因此可以使程序在不同條件下,完成不同的功能
#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
}
本章小結(jié)
2. 宏定義是用一個(gè)標(biāo)識(shí)符來(lái)表示一個(gè)字符串,這個(gè)字符串可以是常量、變量或表達(dá)式。在宏調(diào)用中將用該字符串代換宏名。
3. 宏定義可以帶有參數(shù),宏調(diào)用時(shí)是以實(shí)參代換形參。而不是“值傳送”。
4. 為了避免宏代換時(shí)發(fā)生錯(cuò)誤,宏定義中的字符串應(yīng)加括號(hào),字符串中出現(xiàn)的形式參數(shù)兩邊也應(yīng)加括號(hào)。
6. 條件編譯允許只編譯源程序中滿足條件的程序段,使生成的目標(biāo)程序較短,從而減少了內(nèi)存的開(kāi)銷并提高了程序的效率。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |