【发布时间】:2016-08-04 06:47:37
【问题描述】:
考虑以下
#if TABLE_SIZE>200
#undef TABLE_SIZE
#define TABLE_SIZE 200
The macro TABLE_SIZE is being compared
是否有可能将其与非数值比较,例如,
#if MACRO==ABCDEF123
我试过了,但是编译器抱怨 ABCDEF123 没有被定义并假定它为 0。
【问题讨论】:
-
重新打开,因为它也被标记为 C++,这可能会吸引建设性的基于模板的解决方案。
-
@Bathsheba,实际上我赞成您重新打开此 Q 的评论。但我意识到宏和模板在这种情况下无法相处。我不确定这个 Q 的历史。链接的 Q 之前是否只标记为重复?尽管如此,我认为除了该帖子中给出的答案之外的任何事情都是可能的。看起来,这个 Q 中的代码(使用
#endif)实际上编译得很好。大多数情况下,OP 的意思是链接的 Q 中提出的任何问题。
标签: c++ c macros comparison conditional-statements