使用do定义的C ++宏同时导致错误

时间:2015-04-29 13:13:53

标签: c++ macros

我需要运行两段代码。 (不,我不允许改变他们中的任何一个)。

第一件作品定义一个宏

#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函数,我可以使它工作。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

只需插入一个函数即可在一侧调用MACRO并在另一侧返回一个值。

#define ANOTHER_MACRO theFunc()

bool theFunc() {
    MACRO;
    return /* something */;
}