Eclipse:在 C 代码中将变量构建为字符串

问题描述 投票:0回答:1

我尝试在 C 预处理器代码中使用构建变量作为字符串来进行编译器切换。

构建变量: 版本:A

预处理器/定义符号:

VER=${VER}

代码:

#if VER == 'A'
#define VERSION (1)
#endif

这个表达式总是假的。 相同的语法适用于构建变量中给出的数字,但我需要以相同的方式使用字符串。有什么方法可以做到吗?

IDE:Eclipse

编译器:IAR

提前谢谢您。

c eclipse eclipse-cdt preprocessor iar
1个回答
0
投票

这是一个众所周知的现象:未找到的预处理器标记被

#if
评估为零。因此,应该按照以下方式编写坚固的代码:

#if defined(VER) && VER == 'A'

或者如果您想要编译器错误:

#ifndef VER
  #error VER not defined!
#elif VER == 'A'
  #define VERSION (1)
#endif
© www.soinside.com 2019 - 2024. All rights reserved.