1. 主页
  2. 文档
  3. C++教程
  4. C++基础教程
  5. 在 C/C++ 中编写 void main() 或 main() 可以吗?

在 C/C++ 中编写 void main() 或 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 Program to demonstrate main() with
// return type
#include <iostream>

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

输出

This program returns the integer value 0

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

最后,

#include <iostream>
using namespace std;

main()
{
// Body
}

上面的代码没有错误。如果您编写整个无错误的 main() 函数,最后没有 return 语句,那么编译器会自动在程序末尾添加一个具有正确数据类型的 return 语句。 

综上所述,这是从来没有使用一个好主意,void main()或者简单地说main() ,因为它不确认标准。不过,某些编译器可能允许这样做。

 

 

这篇文章对您有用吗? 1