warning: no newline at end of file
来源:互联网 发布:java调用http上传文件 编辑:程序博客网 时间:2024/05/01 02:25
初学gcc的人通常会遇到这种警告:
$ echo -n -e “\t” | gcc -xc -E -
# 1 “<stdin>”
# 1 “<built-in>”
# 1 “<command line>”
# 1 “<stdin>”
<stdin>:1:2: warning: no newline at end of file
一些聪明的人很快就可以修复这个警告,在文件结尾回车一下就行了。可以很少会有人去仔细探究,为什么gcc会给出这么一个警告?
原因其实也很简单,因为标准规定如此。C99第5.1.1.2节这样写道:
Each instance of a backslash character (\) immediately
followed by a new-line character is deleted, splicing
physical source lines to form logical source lines.
Only the last backslash on any physical source line
shall be eligible for being part of such a splice. A
source file that is not empty shall end in a new-line
character, which shall not be immediately preceded by
a backslash character before any such splicing takes
place.
C99 Rationale中进一步指出:
A backslash immediately before a newline has long been used to continue string literals, as well as preprocessing command lines. In the interest of easing machine generation of C, and of transporting code to machines with restrictive physical line lengths, the C89 Committee generalized this mechanism to permit any token to be continued by interposing a backslash/newline sequence.
这么规定的初衷有两个:一是为了每一行都要以换行结束。二是,因为行尾的\表示连接下一行,如果一个文件最后一行行尾有\,那么,紧跟它也被包含进来的下一个源文件的第一行就会被连接!而如果一个文件以一个空行结束就会避免这种情况的发生。
- warning: no newline at end of file
- warning: no newline at end of file
- Warning: no newline at end of file
- warning: no newline at end of file
- warning: no newline at end of file
- warning: no newline at end of file?
- warning: no newline at end of file
- warning:no newline at end of file
- Linux: gcc warning warning: no newline at end of file
- gcc warning: no newline at end of file
- warning no newline at the end of file
- 如何解决warning: no newline at end of file?
- C-free提示warning: no newline at end of file
- warning: no newline at the end of file
- 解决warning: no newline at end of file
- 如何解决warning: no newline at end of file
- warning no newline at the end of file
- error:warning no newline at the end of file
- javascript:history.go()和History.back()的区别
- 白叟街头酣睡时被大货车轧断脚骨
- DateTime.ToString() formats
- 使用 CAS 在 Tomcat 中实现单点登录
- Encoding & Code page
- warning: no newline at end of file
- 递归_汉诺塔算法
- byte数组转float 以及byte转其他类型时为什么要&0xff
- cue错误(语音信箱时间错误)
- 查找链表中倒数第k个结点
- 色彩与时间感觉
- 女子做手术拉直S形脊椎身高骤增9厘米
- 应用 memcached 提升站点性能
- 编程题--Mystring类的编写