【问题标题】:Setting variable value using two macros in C++ [closed]在 C++ 中使用两个宏设置变量值 [关闭]
【发布时间】:2014-05-26 12:40:01
【问题描述】:

我有一个这样的代码块:

#ifdef AB
    int value = 5;
#else
    int value = 10;
#endif

#ifdef CD
    int value = 9;
#else
    int value = 11;
#endif

但现在我的问题是,如果 AB 和 CD 宏都处于活动状态,则值设置为 9。我在同一个解决方案中有两个项目。一个使用 AB 和另一个 CD,那么如果不将它们放在单独的解决方案中,我如何区分它们呢?

【问题讨论】:

  • int value 11;,你的意思是int value = 11;
  • 我猜那些 else-s 实际上是 #else ...
  • 我得到错误:重新定义'int value'当我尝试运行这段代码并定义了两个宏并且else-s更改为#else-s

标签: c++ macros


【解决方案1】:

不要为此使用宏。

很明显,如果您需要两个变量同时存在,并且具有两个值,那么它们不能具有相同的名称。考虑一个数组或某种容器,它可以包含两个值,并使用方便的描述性名称进行索引。

或者简单地有两个不同名称的变量,并根据任何适当的条件决定在任何给定点使用哪个变量。

【讨论】:

  • @snowden:不客气,爱德华。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多