C++ 主罐';不可能是空的

C++ 主罐';不可能是空的,c++,syntax,C++,Syntax,可能重复: 为什么C++不让我做代码>空主()/CUT>?这不是什么大问题,但我还是很好奇。因为main()的返回类型必须是int C++03[第3.6.1节主要功能] 实现不应预定义主要功能。此功能不应过载其返回类型应为int,否则其类型由实现定义 因为标准说它返回int。一些操作系统期望进程返回整数。声明main以返回一个int。如果不关心该值,只需返回0即可 从comp.lang.c常见问题解答: (有两种:无args和argc/argv。) (简短回答:否) 斯特劳斯特鲁普自己的回答

可能重复:


为什么C++不让我做代码>空主()/CUT>?这不是什么大问题,但我还是很好奇。

因为
main()
的返回类型必须是
int

C++03[
第3.6.1节
主要功能]

实现不应预定义主要功能。此功能不应过载其返回类型应为int,否则其类型由实现定义


因为标准说它返回int。

一些操作系统期望进程返回整数。声明main以返回一个int。如果不关心该值,只需返回0即可

从comp.lang.c常见问题解答:

  • (有两种:无args和argc/argv。)
  • (简短回答:否)

    • 斯特劳斯特鲁普自己的回答:

      我可以写“void main()”吗? 定义

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

      不是C++,也不是C++。参见ISO C++标准3.61[2 ]或ISOC标准5.1.2.2.1。一致性实现接受

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

      一致性实现可以提供更多版本的main(),但它们都必须具有返回类型int。main()返回的int是程序向调用它的“系统”返回值的一种方式。在不提供这种设施的系统中,返回值被忽略,但这不会使“空虚主”()“合法C++”或“合法C”。即使编译器接受“无效主程序”,也避免了它,或者被C和C++程序员认为是无知的。 <>在C++中,主()不需要包含显式返回语句。在这种情况下,返回的值为0,表示执行成功。例如:

      #include<iostream>
      
      int main()
      {
          std::cout << "This program returns the integer value 0\n";
      }
      
      #包括
      int main()
      {
      
      STD::int IdId()的问题是什么?{返回0;};与[C++标准禁止ValueMe]()原型相同(?)。更好的问题是为什么使用流血C++?为什么要尝试<代码>空洞主()??
      它不是
      void
      ,而是
      int
      。它就是这样。你甚至不会注意到区别,因为你根本不需要显式的返回值。@Max:而且它是唯一一个可以省略return语句的非void return函数!所以
      int main(){}
      更短一个字符!您甚至不需要显式返回任何内容。
      #include<iostream>
      
      int main()
      {
          std::cout << "This program returns the integer value 0\n";
      }
      
      #include<iostream>
      
      main() { /* ... */ }