C语言#define和续行符结合使用的问题?

TymonHuang 发布于 2015/07/07 11:29
阅读 467
收藏 1

有两个宏定义

#define a(x) \

int a;    \

int b;    \

double d;    \

char c;


现在有一个需求,需要用宏定义来隔开上述语句,以达到条件编译的效果

所以有:


#define a(x) \

int a;    \

#ifdef CONFIG_CCC

int b;    \

#endif /* CONFIG_CCC */

double d;    \

char c;



改过后的宏定义语句块出现了错误,无奈只能用以下这种臃肿的办法来解决,所以,求助各位,有什么办法能写在一个语句中,达到最大限度的语句复用???

#ifdef CONFIG_CCC

#define a(x) \

xxxxxx;

#else

#define a(x)

uuuuuuuu;

#endif /**/

加载中
0
中山野鬼
中山野鬼

引用来自“TymonHuang”的评论

@中山野鬼 有什么建议?
一个什么样的对象(如代码片,语句或其他),可以被定义为一个宏呢?这个需要你思考的。而不是c的语法究竟支持怎样的定义。就算满足你现在的随意了,最终只会让你的思维更混乱。哈。
0
liuyong051
liuyong051

你那不叫语句复用,你是自己找麻烦。

几行、十几行代码,多写几遍,累不是人,也不会导致程序变慢,没必要。

0
0
小峰
小峰

从可读性来说,还是要改成后者。

TymonHuang
TymonHuang
你可以去试试先
0
老汉-憨憨
老汉-憨憨
艹  这代码
返回顶部
顶部