在刚工作的时候 ,就看到有同事因为编译报错 导致被通报。最后排查报错原因竟是因为有个文件
最后没有添加换行符。为此接口人给我们开会,将这个报错作为点检表里。
今天在玩STM32的时候写了一个程序,很简单,但是会有一警告。h
#include "stm32f10x.h" // Device header
int main(void)
{
while (1) {
}
}
/*
*** Using Compiler 'V5.06 update 5 (build 528)', folder: 'D:\MDK\ARM\ARMCC\Bin'
Build target 'Target 1'
compiling main.c...
User\main.c(9): warning: #1-D: last line of file ends without a newline
}
User\main.c: 1 warning, 0 errors
linking...
Program Size: Code=648 RO-data=252 RW-data=0 ZI-data=1632
".\Objects\project_fiist.axf" - 0 Error(s), 1 Warning(s).
Build Time Elapsed: 00:00:01
*/
这warning的意思就文件最后一行没有新的一行,也就文件最后一行代码需要加上换行符,以此来添加一行没有代码的空行。
询问AI的大致意思就是说:
-
在Unix/Linux系统中,文本文件的每一行都被定义为以换行符(
\n
)结束的字符串。即使文件的最后一个字符是换行符,它也属于最后一行的一部分。这种规范使得文件的处理更加统一和方便。 -
如果文件最后一行没有换行符,某些工具(如
wc
命令)可能会将最后一行视为不完整行,从而导致统计结果不准确。
而我们知道C语言在Unix/Linx是有着不可替代的作用,所以为了保证代码的规范,在设计处的时候就保留这习惯。