【发布时间】:2014-12-27 18:54:09
【问题描述】:
附上代码:
#define MACRO(A,B) foo(A); bar(B)
if(true) {
MACRO(A,B);
}
Astyle 将删除宏调用周围的括号
if(true)
MACRO(A,B);
幸运的是,我找到了解决方案。如果我将; 放在宏中,Astyle 会理解它。
#define MACRO(A,B) foo(A); bar(B);
if(true) {
MACRO(A,B)
}
这是一个好的解决方案,是Astyle的一个错误还是我的误解?
【问题讨论】:
-
宏开始时这种风格非常糟糕。它可能应该使用
do { ... } while(false)模式(没有最终的;)。 -
去掉括号也是一种可疑的风格...
-
@DevSolar:用过多的括号、比较、换行符……
-
@Deduplicator:我记得我们已经在另一个评论线程中对这个问题产生了分歧。远离我的消息来源好吗?
-
@DevSolar:我从未更改过您的代码(我记得)。无论如何,新代码应该始终遵循现有代码库已经使用的任何样式。但如果你说它的风格不好/可疑,那你就是在要求矛盾。