viperchaos

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

在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

 

 

 

posted on 2010-11-20 20:02  viperchaos  阅读(242)  评论(0编辑  收藏  举报