请较为什么同一段代码,在VC和Dev C++中有不同的结果?
代码如下,在VC6.0和Dev C++ 4.9.7.0中测试
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b=6;
a=-1+(+(--b))-5;
printf("%d\n",a);
system("pause");
return 0;
}
//另外为什么void main(){}在Dev C++中编译通不过,报错"'main' must return 'int'" ?
问题点数:20、回复次数:8Top
1 楼winsunII(winsun)回复于 2003-10-04 11:38:55 得分 0
VC中结果为:
-1
请按任意键继续 . . .
Dev C++中为:
-0请按任意键继续 . . .Top
2 楼winsunII(winsun)回复于 2003-10-04 11:43:21 得分 0
写错了:
Dev C++中为:
-0请按任意键继续 . .
是:
Dev C++中为:
0请按任意键继续 . .Top
3 楼Jinhao(辣子鸡丁·GAME就这样OVER了)回复于 2003-10-04 11:48:42 得分 0
//另外为什么void main(){}在Dev C++中编译通不过,报错"'main' must return 'int'" ?
因为Dev-C++的编译器要比VC6更符合C++标准,在C++规范中有这样一条main()返回一个int,在《the c++ programming language》中也有讲到Top
4 楼winsunII(winsun)回复于 2003-10-04 11:52:52 得分 0
我在书上看到main(){}就是int main(){}
但void main(){}要返回一个int 这好象讲不过去,它应该返回的是void类型啊Top
5 楼Jinhao(辣子鸡丁·GAME就这样OVER了)回复于 2003-10-04 12:01:44 得分 0
void main()返回的是void
int main()才返回int
所以
在Dev-C++里 int main()或main()才合法Top
6 楼winsunII(winsun)回复于 2003-10-04 12:18:22 得分 0
To: Jinhao(辣子鸡丁)
你有C++标准规范吗,能给我发一份好吗?
不知道你对在两个编译器里打印不同的结果,怎么看.Top
7 楼Jinhao(辣子鸡丁·GAME就这样OVER了)回复于 2003-10-04 15:44:44 得分 0
C++规范可以在网上下到,你自己找一下吧
还有,讨论两个编译器产生的不同结果是没有意义的,因为不同的编译器对这样的表达式有不同的优化[运算顺序]Top
8 楼Jinhao(辣子鸡丁·GAME就这样OVER了)回复于 2003-10-04 16:02:01 得分 20
地址
http://www.sohotimes.com/download/gf/C++.zip
只有 2MB,pdf的,我在网吧,这里没有那个读书的东东,所以我也不知道这个到底是不是,如果是20MB的话,那就可能是Top



