可能的重复:
if 语句的格式
是否有用于标识的最佳编码样式(同一行,下一行)?
编写stackoverflow样式“问题”/“标签”翻转按钮的最佳方法
public void Method {
}
或者
public void Method
{
}
除了个人喜好之外,一种风格比另一种风格有什么好处吗?我曾经对第二种方法发誓,但现在在工作和个人项目中使用第一种方法。
通过可读性,我的意思是想象这些方法中的代码 - if/else 等......
可能的重复:
if 语句的格式
是否有用于标识的最佳编码样式(同一行,下一行)?
编写stackoverflow样式“问题”/“标签”翻转按钮的最佳方法
public void Method {
}
或者
public void Method
{
}
除了个人喜好之外,一种风格比另一种风格有什么好处吗?我曾经对第二种方法发誓,但现在在工作和个人项目中使用第一种方法。
通过可读性,我的意思是想象这些方法中的代码 - if/else 等......
返回类型与函数名在同一行,参数在同一行(如果合适)。
函数如下所示:
ReturnType ClassName::FunctionName(Type par_name1, Type par_name2) { DoSomething(); ... }
函数定义:将每个大括号放在自己的行上。
对:
int main() { ... }
错误的:
int main() { ... }
不过,他们建议将大括号用于其他所有内容。
GNU 编码标准建议
将启动 C 函数主体的左大括号放在第一列中很重要,这样它们就可以启动 defun。有几个工具会在第一列中查找开括号以查找 C 函数的开头。这些工具不适用于未以这种方式格式化的代码。
当它们在函数内部时,避免将左大括号、左括号或左括号放在第一列中,这样它们就不会启动 defun。如果您发现将该定义视为 defun 很有用,则开始结构体的左大括号可以放在第一列中。
函数定义在第一列中以函数名称开头也很重要。这有助于人们搜索函数定义,也可能有助于某些工具识别它们。因此,使用标准 C 语法,格式如下:
static char * concat (char *s1, char *s2) { ... }
或者,如果您想使用传统的 C 语法,请像这样格式化定义:
static char * concat (s1, s2) /* Name starts in column one here */ char *s1, *s2; { /* Open brace in column one here */ ... }
如你所见,每个人都有自己的看法。就个人而言,我更喜欢 Perl 风格的大括号-在同一行-除-之外- else
,但只要编写代码的每个人都可以合作,那真的没关系。
我认为这完全是主观的,但是,我认为为您的团队建立代码标准并让每个人都使用相同的风格很重要。话虽如此,我喜欢第二个(并让我的团队使用它),因为当它不是您的代码时,它似乎更容易阅读。
第一个在行数方面较小(也许这就是为什么开发-Java-书籍倾向于使用该语法)
第二个是,恕我直言,因为您总是有两个对齐的括号,所以更容易阅读。
无论如何,它们都被广泛使用,这是您个人喜好的问题。
在这个高度情绪化的主题中,我使用 if 语句作为推理的依据。
if (cond) {
//code
}
只需询问 else 语句是什么样的?上述的逻辑扩展是:-
if (cond) {
//code
} else {
//more code
}
那可读吗?我不这么认为,它也很丑陋。
更多的行是 != 可读性较差。因此,我会选择你的后一种选择。
就我个人而言,我发现第二个更具可读性(对齐的卷曲)。
团队使用默认值总是最容易的,因为 Visual Studio 和我同意这一点,这就是我的论点。;-)
使用第一个选项,您的代码行数将大大减少。:)