title: 为什么C语言源程序最后一行要是一个空行？
desc: 否则的话编译器会报warning 1-D last line of file ends without a newline这种错误，虽然这个warning没啥影响，但既然要设计这么一个warning总得有点原因吧。
topic: C（编程语言）
content: C 语言是在 Unix 中发明的，为 Unix 系统的编程语言，它对文件的处理遵循一个基本的原则： 文件是流式的，可以被任意的拼接并且拼接后仍然保证完整性。为了保证这一点，在 Unix 中 n 符号被定义为一行的结束符，换句话说，如果一行的结尾没有 n 视为这一行没有结束，换句话说这个文件不完整，也就是说这根本不是一个合法的文本文件。（题外话：同时为了保证这一点，Unix 文本通常不允许使用 BOM，因为 BOM 拼接之后将出现
answerer_tags: 我说的大多是一本道