我可以做点什么吗
#define a->b c
我试过了,编译器抱怨" ISO C在宏名称之后需要空格"
我想要完成的是重用代码。我想做点什么:
#ifdef DEBUG
#define a->b c
#endif
其他任何方式吗?
答案 0 :(得分:6)
#define
的语法是
#define <MACRONAME> <MACROVALUE>
值应遵循名称,中间有space
。
因此,您要通过将宏定义为
#define c (a->b)
here 显示需要围绕宏的括号以避免逻辑错误。
注意:但是以这种方式使用宏是不受欢迎的。当基本细节被隐藏起来时,很难理解代码。此外,对于这样的编码实践,无论是性能还是代码大小,都没有任何好处。