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

时间:2011-11-17 18:20:14

标签: c windows linux gcc cygwin

  

可能重复:
  “No newline at end of file” compiler warning

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

当我制作任何.c文件并在警告后运行其节目时

Warning : No new line at end of file 

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

所以

为什么我会收到此警告?这是什么意思?

修改

有什么需要或有什么优势呢?

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

2 个答案:

答案 0 :(得分:14)

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

  

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

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

答案 1 :(得分:1)

No newline at end of file显示了您收到此错误的原因以及为什么不使用换行符可能会很糟糕。

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