"警告:文件末尾没有新行"是什么意思?

Jee*_*tel 5 c linux windows gcc cygwin

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

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

什么时候我做任何.c文件并在警告后运行它的节目

Warning : No new line at end of file 
Run Code Online (Sandbox Code Playgroud)

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

所以

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

编辑

是什么需要或者这样做有什么好处?

如果它是c编程标准的一部分那么为什么它在linux下工作时不会出现任何错误?

Jam*_*lis 15

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

非空的源文件应以换行符结尾,在进行任何此类拼接之前,该换行符不应立即以反斜杠字符开头.

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