在CSAPP看到#ifdef,对条件编译的命令不是很熟悉,
#if defined(symbol1)
#ifdef symbol1
这两条命令是类似的,不过#if的命令更强大一点,symbol1的表达式可以更加灵活。
#include <stdio.h>
#define LETTER 0
int main(){
char str[20] = "c language", c;
int i = 0;
while((c = str[i]) != '\0'){
i++;
#if LETTER
if(c >= 'a' && c <= 'z') c = c-32;
#else
if(c >= 'A' && c <= 'Z') c = c+32;
#endif
printf("%c",c);
}
return 0;
}
如果 LETTER 定义为1,则输出 C LANGUAGE
如果 LETTER定义为0, 则输出 c language
参考资料:http://blog.chinaunix.net/u/21790/showart_210476.html

浙公网安备 33010602011771号