可能重复:
main() 在 C/C++ 中应该返回什么?
这个函数返回什么值。只是简单的主要。
main()
{
...
}
如果一个函数有两个 main ,会发生什么?
这个函数返回什么值。
main
需要声明为返回一个int
. 返回值被传递给调用者,调用者通常是操作系统。
5.1.2.2.1程序启动
程序启动时调用的函数名为 main。实现没有声明这个函数的原型。它应定义为返回类型为 int 且不带参数:
int main(void) { /* ... */ }
或者带有两个参数(这里称为 argc 和 argv,尽管可以使用任何名称,因为它们是声明它们的函数的局部变量):
int main(int argc, char *argv[]) { /* ... */ }
如果一个函数有两个 main ,会发生什么?
链接器报告错误。
在 C99/C11 中,如果在托管环境中达到,则main
返回。否则,返回值未定义。0
}
C11, § 5.1.2.2.2 程序执行
[...] 到达
}
终止main
函数的返回值 0。
假设您使用的是 C89 或更早版本的编译器,那么
main()
{
...
}
返回int
。如果您使用的是 C99 或更高版本的编译器,则会出现错误。
从 C99 开始,如果在没有显式返回的情况下到达结尾}
,main
则返回值为 0。不确定 C89 或更早版本。
不确定“一个功能有两个电源”应该是什么意思。如果一个程序定义了两个main
函数,那么您很可能会在链接时遇到重复定义错误。