| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 962 人关注过本帖
标题:C语言新手求解,,警告是什么问题?
只看楼主 加入收藏
aqwszddd
Rank: 1
等 级:新手上路
帖 子:23
专家分:9
注 册:2014-1-15
收藏
得分:3 
顶楼上
2014-08-12 13:42
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:0 
回复 10 楼 TonyDeng
大版,  我没有说警告可以都不理会。  只是这个警告可以不理会。

另外,对于编译器的反馈信息来说,看得懂才知道哪些反馈信息需要处理,对自己有用,然后采取相应的措施。  看不懂的话,那所有的反馈信息都是有用的,都是需要处理的。

代码测试环境:  WinXP+C-Free5.0.
2014-08-12 14:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我的意思是在最后敲一下回车也比忽略它好。既然它给了警告,天知道会怎么处理。

授人以渔,不授人以鱼。
2014-08-12 15:17
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:3 
以下是引用vvvcuu在2014-8-11 09:37:19的发言:

C-Free要求光标要在该文件的最后一行的起始处,所以当你输入完代码敲完最后一个字符的时候,一般是“}”或者注释内容,需要一个回车使光标移动到下一行的开始。如果没有这么做,C-Free会发出一个这样的警告:
[Warning] D:\lili\C-Free\Temp\未命名16.cpp:10:2: warning: no newline at end of file
字面意思就是: 警告:在文件末尾没有新行。前面是该文件所在的地址和光标最后所在的位置,前一个数字是行,后一个是列。
这个警告对程序的编译和执行并没有影响,可以不理会。

C-Free默认编译器是GCC 好像3.x版本的GCC对于无空行会报错 但4.x 我没见过它再报过
2014-08-12 15:32
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:0 
回复 14 楼 zklhp
手头上用的C-Free5.0。采用的是自带的编译器, 命令行下gcc版本显示的是3.4.5.

代码测试环境:  WinXP+C-Free5.0.
2014-08-12 17:39
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果按《编程规范》的建议,是把编译器的开关设定到警告作为错误的级别(/W3),令编译器无法轻易忽略警告而生成可执行文件,强迫程序员解决警告所提及的问题。我比较认同这个建议。某些问题,比如楼顶的这个警告,在理论上说的确可以忽略,但这个编译器既然能够提出来,我们就无法知道这个特定编译器对这种情形会作什么处理(别的编译器可以正确处理不见得这个编译器也可以),所以最好按照提示作出处理。事实上,C标准的某些规定是无用或过时的,像main()的返回值必须是int就属于此类。

我以前猜测过文件末尾必须有换行符这个规定的原因,估计是旧式的编译器使用类似fgets()之类的函数读取文件,为了少写几行代码,没有针对结束行没有换行符的情形进行处理,故野蛮规定必须以换行结尾。

[ 本帖最后由 TonyDeng 于 2014-8-13 12:11 编辑 ]

授人以渔,不授人以鱼。
2014-08-13 12:04
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用TonyDeng在2014-8-13 12:04:58的发言:

如果按《编程规范》的建议,是把编译器的开关设定到警告作为错误的级别(/W3),令编译器无法轻易忽略警告而生成可执行文件,强迫程序员解决警告所提及的问题。我比较认同这个建议。某些问题,比如楼顶的这个警告,在理论上说的确可以忽略,但这个编译器既然能够提出来,我们就无法知道这个特定编译器对这种情形会作什么处理(别的编译器可以正确处理不见得这个编译器也可以),所以最好按照提示作出处理。事实上,C标准的某些规定是无用或过时的,像main()的返回值必须是int就属于此类。
事实上,C标准的某些规定是无用或过时的,像main()的返回值必须是int就属于此类。
2014-08-13 12:11
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
http://

有兴趣的可以看看别人的讨论 当然是英语的
2014-08-13 12:12
快速回复:C语言新手求解,,警告是什么问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017518 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved