В чем смысл "предупреждения: нет новой строки в конце файла"?

<span> Возможный дубликат:</span> <a href="https://stackoverflow.com/questions/72271/no-newline-at-end-of-file-compiler-warning" target="_blank">Предупреждение компилятора "Нет новой строки в конце файла" </a>

Я пользователь Linux и использую gcc на работе. Но у себя дома я установил пакет cygwin и использовал его gcc на моей машине Windows.

когда я когда-либо создаю любой файл .c и запускаю его шоу после предупреждения

Warning : No new line at end of file

когда я добавляю дополнительную новую строку в конце этого c файла, предупреждение исчезло. Я не сталкивался с таким предупреждением при работе с gcc в Linux.

так

почему я получаю это предупреждение? что это значит?

Изменить

Какая потребность или в чем преимущество этого?

если он является частью стандартного программирования c, то почему он не дает никаких ошибок при работе в Linux?

2 ответа

Язык C требует, чтобы каждый исходный файл заканчивался новой строкой (от C99 5.1.1.2/1):

Исходный файл, который не является пустым, должен заканчиваться символом новой строки, которому не должно предшествовать символ обратной косой черты перед любым таким сращиванием.

(У С++ также было это требование до С++ 11)


Нет новой строки в конце файла показывает, почему вы получаете эту ошибку и почему это может быть плохо, чтобы не иметь новую строку.

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

licensed under cc by-sa 3.0 with attribution.