可以在#if中将MACRO与非数值进行比较

时间:2016-04-13 09:18:44

标签: c++ c macros comparison conditional-statements

考虑以下

#if TABLE_SIZE>200
#undef TABLE_SIZE
#define TABLE_SIZE 200

The macro TABLE_SIZE is being compared

是否可能将其与非数值相比较,

#if MACRO==ABCDEF123

我尝试了但是编译器抱怨ABCDEF123没有被定义,并假设为0。

1 个答案:

答案 0 :(得分:0)

为了实现真正的可移植性,#IF expression中的表达式只能包含整数和字符常量。 C和C ++预处理器还可以评估+-*/<<>>!===以及符合标准C和C ++短路规则的两个逻辑运算符&&||

所以不,你不能直接比较字符串。