考虑以下
#if TABLE_SIZE>200
#undef TABLE_SIZE
#define TABLE_SIZE 200
The macro TABLE_SIZE is being compared
是否可能将其与非数值相比较,
#if MACRO==ABCDEF123
我尝试了但是编译器抱怨ABCDEF123没有被定义,并假设为0。
答案 0 :(得分:0)
为了实现真正的可移植性,#IF expression
中的表达式只能包含整数和字符常量。 C和C ++预处理器还可以评估+
,-
,*
,/
,<<
,>>
,!=
, ==
以及符合标准C和C ++短路规则的两个逻辑运算符&&
和||
。
所以不,你不能直接比较字符串。