关于编码风格:源代码末尾的新行

New line at the end of source code

无论何时我在Visual Studio中打开代码编辑器,生成的代码末尾总会有一个空的新行。 我通常删除它们,因为它们似乎与我无关。 但是,最近我在Github阅读了代码:

1
\ No newline at end of file

这是最后一行。 现在我认为源代码末尾的那些空的新行确实有一些相关性。 但他们的意思是什么? 他们是否提供任何性能提升?


有两件事让我更喜欢在文件末尾添加换行符:

  • 查看文件末尾出现的差异时,代码评论会稍微容易一些(即,如果在文件末尾添加了一行,则只显示前一行更改,只有获得换行符时)
  • 转到文件的末尾(在Windows中按Ctrl + End)总是将我放在同一列而不是在右边的某个意外位置

  • 不,它没有任何区别。

    一些编码惯例说最终换行是好的,有些人说不好。


    几乎唯一不同的是,如果你有一个没有换行的文件 - 像这样:

    1
    2
    3
    blah

    bleh (no newline)

    当您将其修改为:

    1
    2
    3
    4
    5
    blah

    bleh

    foo (no newline)

    然后根据差异,你修改了2行 - 一行有内容,另一行有换行...这可能不是你想要的。再说一次,实际上你选择的方式并不重要。如果你包含换行符,你的差异会更清晰一些。

    它也为其他答案中提到的一些预处理器带来了变化 - 但这取决于您使用的语言。

    当然,它根本没有性能差异。


    在此处阅读有关C ++中新行的更多信息:"文件末尾没有换行符"编译器警告

    我认为Visual Studio和Git都主要是为了与大会保持一致。