标签:style blog ar color sp on div log bs
一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译。
条件编译命令最常见的形式为:
1 #ifdef 标识符 2 程序段1 3 #else 4 程序段2 5 #endif
它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。
其中#else部分也可以没有,即:
1 #ifdef 2 程序段1 3 #denif
还有一种形式,就是#if后面的是一个表达式,而不是一个简单的标识符:
1 #if 表达式 2 程序段1 3 #else 4 程序段2 5 #endif
它的作用是:当指定的表达式值为真(非零)时就编译程序段1,否则编译程序段2。可以事先给定一定条件,使程序在不同的条件下执行不同的功能。
例如:输入一行字母字符,根据需要设置条件编译,使之能将字母全改为大写输出,或全改为小写字母输出。
1 #define LETTER 1 2 main() 3 { 4 char str[20]="C Language",c; 5 int i=0; 6 while((c=str[i])!=‘\0‘) 7 { 8 i++; 9 #if LETTER 10 if(c>=‘a‘&&c<=‘z‘) c="c-32"; 11 #else 12 if(c>=‘A‘&&c<=‘Z‘) c="c"+32; 13 #endif 14 printf("%c",c); 15 } 16 } 17
运行结果为:C LANGUAGE
现在先定义LETTER为1,这样在预处理条件编译命令时,由于LETTER为真(非零),则对第一个if语句进行编译,运行时使小写字母变大写。如果将程序第一行改为:
#define LETTER 0
则在预处理时,对第二个if语句进行编译处理,使大写字母变成小写字母(大写字母与相应的小写字母的ASCII代码差32)。此时运行情况为:
c language
标签:style blog ar color sp on div log bs
原文地址:http://www.cnblogs.com/goAhead-hust/p/4173461.html