可能重复:
Why don't people indent C++ access specifiers/case statements?
我有一个语法问题...不是关于如何,而是为什么。许多IDE(如Eclipse和Qt Creator)会自动缩进switch
,如下所示:
Day randomDay = getRandomDay(); /* returns 'enum Day' */
switch (randomDay) {
default:
case Monday:
/* ... */
break;
case Tuesday:
/* ... */
break;
/* ... */
}
我总是发现这与一般的代码缩进规则不一致,我更喜欢这样做:
Day randomDay = getRandomDay(); /* returns 'enum Day' */
switch (randomDay) {
default:
case Monday:
/* ... */
break;
case Tuesday:
/* ... */
break;
/* ... */
}
类似地,C ++类定义通常是这样缩进的:
class MyClass {
public:
/* ... */
}
相反:
class MyClass {
public:
/* ... */
}
为什么有些人选择不缩进case
声明?
答案 0 :(得分:10)
代码样式就像混蛋。每个人都有一个,但很少有人像其他人一样。
这也适用于此。有些人喜欢它,因此在为IDE编写缩进逻辑时就这样做了。大多数好的IDE都可以选择配置此行为。
这种风格的一个可能原因是,不缩进标签似乎很常见 - 而且案例是一种特殊的标签。
答案 1 :(得分:1)
这纯粹是个人喜好的事情。缩进级别,制表符与空格以及大括号放置一直是程序员火焰战争的主题。
某些编辑器或IDE具有默认值,这些默认值是根据目标受众中某些程序员的“常见”约定设置的。如果您不喜欢默认设置,几乎总有一种方法可以自定义它。
如果你是一个程序员团队,你必须决定某些约定,否则,你最终会重新格式化彼此的代码,直到时间结束!
答案 2 :(得分:0)
Eclipse允许从多种预设样式中进行选择,例如: K& R,每个都可以完全自定义,或创建自己的默认值。
对于每种风格选择都有一个非常合理的解释,Stroustrup也在他的C++ FAQ中解决了这个问题。并不重要 - “做出感觉良好的事情”(在合理范围内)。