2

Can I do something like

#define a->b c

I tried that and the compiler complains "ISO C requires whitespace after the macro name"

What I want to accomplish with this is reuse of code. I want to do something like :

#ifdef DEBUG
#define a->b c
#endif

Any other ways of doing it?

4

1 回答 1

6

的语法#define

#define <MACRONAME> <MACROVALUE>

应跟在名称后面,中间有一个space
因此,您要完成的任务是通过将宏定义为

#define c (a->b)

此处演示了需要在宏周围加上括号以避免逻辑错误。


注意:但是不赞成以这种方式使用宏。当像这样隐藏基本细节时,很难理解代码。这种编码实践也没有任何好处,无论是性能还是代码大小。

于 2013-08-11T07:50:32.480 回答