C++中main函数的返回值必须显式表明吗

2024-12-15 08:21:50
推荐回答(5个)
回答1:

可以不写,系统会自动加上。因为你的main方法是 int类型的,返回的应该是数字,因为你不调用main方法,所以你无论怎么写return 100 也行,只要你的return 后面的值不超过int的值范围就行~

回答2:

在C语言中,main函数必须是int型的,而且正常退出时必须返回0。
测试结果:
[selian@ArchLinuxPC ~]$ printf "int main(){}" > main.c
[selian@ArchLinuxPC ~]$ gcc -o main main.c
[selian@ArchLinuxPC ~]$ ./main
[selian@ArchLinuxPC ~]$ echo $?
84 // 返回值不为0说明程序是异常退出的
[selian@ArchLinuxPC ~]$ printf "int main(){return 0;}" > main.c
[selian@ArchLinuxPC ~]$ gcc -o main main.c
[selian@ArchLinuxPC ~]$ ./main
[selian@ArchLinuxPC ~]$ echo $?
0 // 正常退出
但是在C++中:
[selian@ArchLinuxPC ~]$ printf "int main(){}" > main.cpp
[selian@ArchLinuxPC ~]$ g++ -o main main.cpp
[selian@ArchLinuxPC ~]$ ./main
[selian@ArchLinuxPC ~]$ echo $?
0 // 正常退出
[selian@ArchLinuxPC ~]$ printf "int main(){return 0;}" > main.cpp
[selian@ArchLinuxPC ~]$ g++ -o main main.cpp
[selian@ArchLinuxPC ~]$ ./main
[selian@ArchLinuxPC ~]$ echo $?
0 // 正常退出
可见C++为没有返回值的main自动加上了mov $0x0,%eax,即返回值设为0,而C++没有设置寄存器EAX的值,返回值为任意数 结论:在C语言中main函数必须写上return 0;而C++中可以不用写了。

回答3:

那个返回码表示程序是否正常结束,即使你不加,编译器也会隐含的加return 0,这个值一般是给操作系统的,操作系统用来判断程序是否正常结束而已,建议LZ还是加上返回值,有利于程序的健壮性

回答4:

返回0表示正常结束如果你不定义,大部分编译器默认为0则如果程序运行不正确,但返回0的话,呼呼记得书上有个例子,可以用这个返回值业判断是否要继续运行

回答5:

标准C++是这样子定义的。当然也可以用void main(){...}