我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第3篇文章,点击查看活动详情
在 C++ 中,main 的默认返回类型是 void,即 main() 不会返回任何内容。但是,在 C 中,main 的默认返回类型是 int,即 main() 默认返回一个整数值。
在 C 中,void main() 没有定义(合法)的用法,它有时会抛出垃圾结果或错误。但是,main() 用于表示不带参数并返回整数数据类型的主函数。
定义不是,也从来不是 C++,甚至也不是 C。参见ISO C++ 标准 3.6.1[2]或ISO C 标准 5.1.2.2.1。更多。
void main(){
// Body
}
符合要求的实现接受下面给出的格式:
int main(){
// Body
}
和
int main(int argc, char* argv[]){
// Body
}
一个符合要求的实现可能会提供更多版本的 main(),但它们都必须具有返回类型 int。main() 返回的 int 是程序向调用它的“系统”返回值的一种方式。在不提供此类工具的系统上,返回值被忽略,但这不会使“void main()”合法 C++ 或合法 C。
注意: 即使您的编译器接受void main() 也要避免它,否则可能会被 C 和 C++ 程序员认为是无知的。在 C++ 中,main() 不需要包含显式的 return 语句。在这种情况下,返回值为 0,表示执行成功。
例子:
// CPP 程序演示带有返回类型的 main()
#include <iostream>
using namespace std;
// 驱动程序代码
int main()
{
cout<< "该程序返回整数值 0\n";
}
输出
该程序返回整数值 0
注意: ISO C++ 和 C99 都不允许您将类型排除在声明之外。也就是说,与 C89 和 ARM C++ 相比,在声明中缺少类型的地方不假定 int 。
最后,
#include <iostream>
using namespace std;
main() // c++中main的默认返回类型是int
{
// Body
cout<<"这将返回整数值。";
return 0;
}
上面的代码没有错误。如果您编写整个无错误的 main() 函数,最后没有 return 语句,那么编译器会自动在程序末尾添加一个具有正确数据类型的 return 语句。
综上所述,使用void main() 或简单地使用 main () 绝不是一个好主意,因为它不确认标准。不过,某些编译器可能允许这样做。
如果您发现任何不正确的地方,或者您想分享有关文章的更多信息,可以在下方评论