prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 10.12

Q我如何构造预处理器#if表达式来比较字符串?


A你不能直接这样做;预处理器#if算术只使用整数。另一种方法是#define多个具有符号名称和不同整数值的宏,并在这些宏上实现条件

	#define RED	1
	#define BLUE	2
	#define GREEN	3

	#if COLOR == RED
	/* red case */
	#else
	#if COLOR == BLUE
	/* blue case */
	#else
	#if COLOR == GREEN
	/* green case */
	#else
	/* default case */
	#endif
	#endif
	#endif
(标准 C 规定了一个新的#elif指令,这使得像这样的 if/else 链稍微清晰一些。)

另请参阅问题 20.17

参考文献:K&R2 第 4.11.3 节,第 91 页
ISO 第 6.8.1 节
H&S 第 7.11.1 节,第 225 页


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管