首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

Linux下为什么程序的结尾要空一行?该如何解决

2012-02-09 
Linux下为什么程序的结尾要空一行?Linux下为什么程序的结尾要空一行,否则会有警告呢?[解决办法]标准就酱紫

Linux下为什么程序的结尾要空一行?
Linux下为什么程序的结尾要空一行,否则会有警告呢?

[解决办法]
标准就酱紫的 ...
[解决办法]
它就是这么定义的 ~
[解决办法]
就是一个 “规定” 而已,
没有理由 ······
[解决办法]
gcc编译器的一个“规定”
[解决办法]
规定
[解决办法]
不是 gcc 的规定, 是C/CPP标准的规定, 只是很多编译器并不遵守这个规定而已 ...
[解决办法]
这个是linux的文法定义
[解决办法]
gcc的编译器有这个要求, VC的编译器就没有这个要求。
[解决办法]
编译器说要,你就得给
[解决办法]
在linux下,用gedit和vi分别编写.c程序(就是不在最后加一行)。
用gcc 4.0.3 编译后,均能通过,用vi打开还是没有空行,用gedit打开发现自动增加空行了。


[解决办法]
是不是和C/C++语言的include机制有关,编译器直接把include行替换成头文件的内容,如果被包含的文件结尾没有空行的话,会使紧跟include的下一行语句与头文件最后一行连在一起,往往引起语法错误。
如:
//head.h
void fun();//文件结尾没有空行
//main.cpp
#include "head.h "
int main()
{
}
编译器进行预处理后,main.cpp会是这个样子:
void fun();int main()
{
}
这当然不是我们想要的。
[解决办法]
atomspace(释衡景) 解释得好.但所举的例子不会出错.
假设cpp文件的开头是宏定义,连接在h文件的末尾了.就出错了.
反正开头结尾免不了以#打头的东西,是不能和其他东西一行的.

实际上要求的是最后一行必须有回车换行符. VC系列可能会在处理包含文件时会加上回车换行符

热点排行
Bad Request.