Новая строка в конце исходного кода - PullRequest
2 голосов
/ 01 июля 2011

Каждый раз, когда я открываю редактор кода в Visual Studio, всегда есть пустая новая строка в конце сгенерированных кодов. Я обычно удаляю их, так как они кажутся мне неуместными. Однако недавно я прочитал код на Github , который сказал:

\ No newline at end of file

Это была последняя строка. Теперь я думаю, что те пустые новые строки в конце исходных кодов действительно имеют какое-то значение. Но что они значат? Обеспечивают ли они какое-либо повышение производительности?

Ответы [ 4 ]

8 голосов
/ 09 декабря 2015

Две вещи заставляют меня предпочитать перевод строки в конце файлов:

  1. Просмотр кода немного проще, если смотреть на различия, которые происходят в конце файла (т. Е. Если строка добавляется в конец файла, то получается, что предыдущая строка изменилась, когда она получила только новую строку)
  2. Переход к концу файла (Ctrl + End в Windows) всегда ставит меня в один и тот же столбец, а не в какую-то неожиданную позицию вправо
3 голосов
/ 01 июля 2011

Нет, это не имеет значения.

Некоторые соглашения о кодировании говорят, что хорошо иметь заключительный перевод строки, некоторые говорят, что это хорошо не до.

2 голосов
/ 01 июля 2011

Практически единственное отличие, которое он имеет, состоит в том, что если у вас есть файл без новой строки, например:

blah\n
bleh (no newline)

Когда вы измените его на:

blah\n
bleh\n
foo (no newline)

Тогдасогласно diff, вы изменили 2 строки - одну с контентом, другую с новой строкой ... что, вероятно, не то, что вы хотели.Опять же, на самом деле не так уж важно, какой путь вы выберете.Если вы включите переводы строк, ваши различия будут немного чище.

Это также имеет значение для некоторых препроцессоров, как указано в другом ответе - но это зависит от того, какой язык вы используете.

Конечноэто никак не влияет на производительность.

1 голос
/ 01 июля 2011

Подробнее о новой строке в C ++ читайте здесь: Предупреждение компилятора "Нет новой строки в конце файла"

Я полагаю, что и Visual Studio, и Git делают это главным образом для согласованности с соглашением.

...