2011-11-17 107 views
3

可能重复:
“No newline at end of file” compiler warning“警告:文件末尾没有新行”的含义是什么?

我是一个Linux用户,并在工作中使用GCC但是在家里我已经安装了Cygwin包,并使用其gcc我的Windows机器上。

当过我做任何.c文件并运行它的展示下列警告

Warning : No new line at end of file 

当我是c文件警告的末尾添加额外的新行消失。 我在Linux中使用gcc时没有遇到过这样的警告。

所以

为什么我收到这样的警告?这是什么意思 ?

编辑

请告诉我需要什么或这样做的好处?

如果它是C编程标准的一部分,那么为什么它不会给任何错误,而在Linux工作?

+2

另请参阅http://stackoverflow.com/questions/72271/no-newline-at-end-of-file-compiler-warning(该问题是关于C++)。 – interjay

+3

那么这意味着在文件末尾没有新行... –

+0

在我编辑之后它不会与该问题重复 –

回答

12

C语言要求每个源文件必须以(从C99 5.1.1.2/1)换行结束:

源文件不为空应新行字符结尾,这在任何这种拼接发生之前,不应该立即以反斜线字符开头。

+0

你见过c语言标准草案吗? –

1

No newline at end of file说明了为什么您收到此错误,为什么它可能是坏不是有一个换行符(C++也之前C++ 11有此要求)。

你可能没有在工作中得到这个,因为你在工作中使用的任何编辑器都可能在文本行的末尾添加换行符,而你在家中使用的编辑器不是。

+0

不会vim吗? –

+0

@ Mr.32,您可以控制Vim是否使用':set binary'添加或不添加换行符。 –

+0

@DourHighArch:它是'set binary noeol'。 – ninjalj

相关问题