编程的时候发现
void main()和int main()
都可以(没有编译错误),但是它们真的没有区别么?本文将深刻剖析这个问题
test1.c
- #include
- int main()
- {
- printf("hello world\n");
- return 0;
- }
gcc -o test1 test1.c
运行test1,然后:
[root@localhost tast]# echo $?
0
test2.c
- #include
- void main()
- {
- printf("hello world\n");
- }
gcc -o test2 test2.c
运行test2,然后:
[root@localhost tast]# echo $?
12
这是它们的第一个区别:void main的返回值是随机的,所以你若是在shell里调用这个程序,那么返回值是无法预料的(程序正确执行,却返回了12),而用int main的话,你可以按照习惯返回不同的值以提示成功或者失败。
第二个:
int main是c标准定义的,按照标准来操作,总是比较安全的。
第三个:
c运行库期待main函数返回一个值,假如main不这样作,将会让堆栈产生混乱
阅读(1366) | 评论(0) | 转发(0) |