【发布时间】:2015-04-29 13:13:53
【问题描述】:
我需要运行两段代码。 (不,我不允许更改其中任何一个)。
第一段定义了一个宏
#define MACRO do { /* stuff in multiple lines and do not return a value */ } while (0)
第二部分在if 语句中使用另一个宏
if (ANOTHER_MACRO) { /* do some stuff */ }
我需要让ANOTHER_MACRO 使用MACRO,并且我可以定义ANOTHER_MACRO。
我认为 inline 函数是正确的方法,但无论是使用宏还是使用 inline 函数,我都无法让它工作。有什么建议吗?
【问题讨论】:
-
所以你需要在条件中做一些事情而不是仅仅提供一个条件?
-
你为什么还要在宏上浪费时间?这是 C++,不是 C,年份是 2015 年,而不是 1985 年 - 使用(内联)函数。
-
尝试内联或 lambda 表达式...
-
这真的是
MACRO的定义吗?另外,我不知道你在问什么。 -
使用由 ANOTHER_MACRO 定义的 lambda 表达式(假设你至少有一个 c++11 编译器)