又讨论int main() 自己试验了一下 发现 貌似VC2008里面void main()相当于返回值总是0 gcc里void main()是不设置返回值
rtVC是release gcc是-O2
不设置返回值就是这个样子
./a.exe ;echo $?
我用int哦
打一个数-1
11
程序代码:
#include <stdio.h> void main(void) { int i = 0; printf("我用int哦\n"); printf("打一个数%d\n", i = -1); }
最后一个语句是函数调用 那么 返回值就是这个函数的返回值 运算的话应该也类似 然后 gcc就让这个返回值作为程序的返回值了
程序代码:
#include <stdio.h> void main(void) { int i = 5; int j = 10; i = i * j; }
如果是这样的代码 不开优化(优化一开这些都变成垃圾代码被优化没了。。) 效果如下
./a.exe ;echo $?
50
以上的是bash打返回值的玩意 不过这个测试是完全在windows下进行的。。
[ 本帖最后由 zklhp 于 2012-8-9 13:59 编辑 ]