2017-01-16 3 views
1

я пытался кодировать хорошо известный привет мир программы в C и скомпилирован с помощью этой команды:Gcc не дают предупреждение о новой строки в конце файла

gcc -Wall -Wextra -pedantic -std=c99 main.c -o exeFile 

, но я не получил никакого предупреждения о 5.1. 1.2 в стандарте C (новая строка в конце файла).

Я использовал редактор Vim для этого, и я должен также инвалидов новой строки настройки, введя:

set binary 
set noeol 

Я хочу знать, как я могу генерировать предупреждение.

б НКУ: 5.4.0

Это исходный файл:

enter image description here

Это выход компилятора:

enter image description here

+0

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

+0

да, я говорю об этом. – Sabrina

+0

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

ответ

1

Это было осознанное решение сделанные в таймфрейме GCC 4.3.2, и переносятся на последующие выпуски:

WONTFIX Bug 40474 - gcc 4.3 no longer warns about missing newlines at end of files

RESOLVED Bug 14331 - please add option to suppress warning message "no newline at end of file"

+0

В этом случае программа будет считаться UB или ?? – Sabrina

+1

Если бы это было сделано UB, компилятор предупредил бы. Это не проблема для GCC. –

+0

Хорошо, что программа считается UB при отсутствии новой строки в eof? – Sabrina

Смежные вопросы