C++ void返回类型为main()

B.G*_*ill 14 c++

一些C++编译器允许main函数具有返回类型void.但是,操作系统int是否需要返回类型值以指定程序是否正常结束?

Rob*_*edy 28

C++也不会允许main有一个void返回类型.已发布的C++标准要求它int.某些C++编译器允许您使用void,但不建议这样做.通常,操作系统不关心这种或那种方式.特定操作系统可能需要程序提供返回值,但它不一定必须来自main返回值.如果C++编译器允许void,那么它可能提供了一些指定程序退出代码的方法.


Bri*_*ndy 20

C++允许main函数返回类型为void

不,它没有.

C++标准只需要2种不同类型的主要签名.如果返回类型是,则可以选择添加其他int.

允许void返回类型的C++实现在C++标准方面是不正确的.

C++ 03标准S. 3.6.1-2:

实现不应预定义主函数.此功能不应过载.它应该具有int类型的返回类型,否则其类型是实现定义的.所有实现都应允许以下两个主要定义:

int main() { /* ... */ } 
int main(int argc, char* argv[]) {/* ... */ }
Run Code Online (Sandbox Code Playgroud)

如果你想要可移植的C++代码,或者编写好的C++示例,那么你应该总是使用上面两种变体之一.


Căt*_*tiș 5

main返回void被接受以实现向后兼容,但这不合法.

在这种情况下,退出代码将为0.您仍然可以使用退出功能更改退出代码.