“警告:文件末尾没有新行”的含义是什么?

可能重复:
“文件末尾没有换行符”编译器警告

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

当我做任何.c文件并运行其显示下面的警告

 Warning : No new line at end of file 

当我添加额外的新行在c文件警告消失的结尾。 在Linux下使用gcc的时候,我还没有遇到这样的警告。

所以

为什么我得到这个警告? 这是什么意思 ?

编辑

这样做的好处是什么?

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

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

非空的源文件应以换行符结束,在任何这样的拼接发生之前不应该立即以反斜线字符作为前缀。

(在C ++ 11之前,C ++也有这个要求)

文件末尾没有新行显示为什么你得到这个错误,为什么它可能是不好的一个换行符。

你可能没有在工作,因为无论你在工作中使用的编辑器可能是在文本行的末尾添加换行符,而你在家使用的编辑器不是。