2012-10-18 79 views
-9

可能重复:
What should main() return in C/C++?main()返回什么?

什么价值这个函数返回。只是简单的主要。

main() 
{ 
... 
} 

如果一个函数有两个市电,会发生什么?

+5

_“如果一个函数有*两个主电源”_? –

+0

很明显,第一个'主'被优先考虑,除非你在第二'主'上设置'FirstMain'属性,那么顺序无关紧要 – MStodd

+0

我会用_why_?来解决你的问题。当它不能编译时,为什么要放两个电源?为什么不按照标准,只有一个主返回一个int? – Mike

回答

4

此函数返回什么值。

main需要声明为返回int。返回值传递给调用者,通常是操作系统。

5.1.2.2.1 Program startup

称为在程序启动的功能被命名为主力。该实现声明不具有此功能的原型 。它应为int的返回类型和不带 参数来定义:

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

或两个参数(这里称为argc和argv,虽然任何人的名字,可以 使用,因为它们是本地在声明它们的功能):

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

如果一个函数有两个电源,会发生什么?

链接器报告错误。

1

如果在托管环境中达到},则在C99/C11中,main返回0。否则,返回值是不确定的。

C11,§5.1.2.2.2程序执行

[...]到达该终止main功能}返回0

0

的值假设你”重新使用C89或更早的编译器,然后

main() 
{ 
    ... 
} 

返回int。如果您使用的是C99或更高版本的编译器,那是错误的。

从C99开始,如果没有显式返回而到达main的结尾},则返回值为0.不确定C89或更早版本。

不知道“一个功能有两个主电源”应该是什么意思。如果程序定义了两个main函数,那么在链接时您很可能会得到重复的定义错误。