📜  在C / C++中编写“ void main()”或“ main()”是否可以?

📅  最后修改于: 2021-05-26 01:51:07             🧑  作者: Mango

定义

CPP
void main()
{ /* ... */ }


CPP
int main()
{ /* ... */ }


CPP
int main(int argc, char* argv[])
{ /* ... */ }


CPP
#include 
int main()
{
    std::cout
        << "This program returns the integer value 0\n";
}


CPP
#include 
 
main()
{ /* ... */}


不是,也永远不是C++,甚至不是C。请参见ISO C++标准3.6.1 [2]或ISO C标准5.1.2.2.1。符合标准的实现接受

CPP

int main()
{ /* ... */ }

CPP

int main(int argc, char* argv[])
{ /* ... */ }

符合的实现可能提供main()的更多版本,但是它们都必须具有返回类型int。 main()返回的int是程序将值返回到调用它的“系统”的一种方式。在不提供这种便利的系统上,返回值将被忽略,但不会使“ void main()”成为合法的C++或合法的C。即使您的编译器接受“ void main()”,也应避免这样做,否则将有风险被C和C++程序员视为无知。
在C++中,main()不必包含显式的return语句。在这种情况下,返回的值为0,表示成功执行。

例如:

CPP

#include 
int main()
{
    std::cout
        << "This program returns the integer value 0\n";
}

还请注意,ISO C++和C99都不允许您将类型保留在声明之外。也就是说,与C89和ARM C++相比,声明中缺少类型的地方不假定“ int”。

最后:

CPP

#include 
 
main()
{ /* ... */}
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。