2017-01-16 5 views
1

の最後の改行に関する警告与えていない:gccが、私はC言語でよく知られたhello worldプログラムをコーディングして、このコマンドを使用して、それをコンパイルしようとしたファイル

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

が、私は何の警告も約5.1を取得できませんでした。 C標準の1.2(ファイルの最後に改行)。

私はそのためのVimエディタを使用して、私は次のように入力しても無効に改行設定があります。私はこの警告を生成できる方法を知りたい

set binary 
set noeol 

を。

使用GCC:これは、コンパイラの出力である

enter image description here

enter image description here

+0

あなたは空でないソースファイルは、そのようなスプライシングが起きる直前にバックスラッシュ文字が先行してはならない改行文字で終わるもの*について話しています。*? – NathanOliver

+0

はい私はそれについて話しています。 – Sabrina

+0

GCC 5.4.0を使用した場合、そのバージョンのドキュメントは、以前のバージョンのドキュメントよりも適切なリソースになります。いずれにしても、GCCドキュメントに具体的な引用文を提供して、文脈でその文章を見直すことが容易になると便利です。 –

答えて

1

これは意図的な決断だった5.4.0

これはソースファイルです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

eofで改行を省略すると、プログラムはUBと見なされますか? – Sabrina

関連する問題