Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ main()在C/C++;_C++_C_Main - Fatal编程技术网

C++ main()在C/C++;

C++ main()在C/C++;,c++,c,main,C++,C,Main,main使用了多少个参数?什么样的main定义变体是可能的?C++标准:() C++98标准在第3.6.1.2节中说 其应具有类型为的返回类型 int,但其类型为 实现定义。全部的 实施应允许以下两种情况: main:int的以下定义 main()和int main(int argc,char* argv[] 通常有3组参数: 无参数/void int argc,char**argv int-argc,char**argv,char**env 其中,argc是命令行的数量,argv是实际的命

main
使用了多少个参数?什么样的
main
定义变体是可能的?

C++标准:()

C++98标准在第3.6.1.2节中说

其应具有类型为的返回类型 int,但其类型为 实现定义。全部的 实施应允许以下两种情况: main:int的以下定义 main()和int main(int argc,char* argv[]

通常有3组参数:

  • 无参数/
    void
  • int argc,char**argv
  • int-argc,char**argv,char**env
其中,
argc
是命令行的数量,
argv
是实际的命令行,
env
是环境变量

窗口:

对于windows应用程序,您有一个具有不同签名的WinMain入口点,而不是main

int WINAPI WinMain(
  __in  HINSTANCE hInstance,
  __in  HINSTANCE hPrevInstance,
  __in  LPSTR lpCmdLine,
  __in  int nCmdShow
);
OSX:()

Mac OS X和Darwin有第四个参数,其中包含操作系统提供的任意信息,例如执行二进制文件的路径:

int main(int argc, char **argv, char **envp, char **apple)

那么linux中的auxv呢?@osgx:我不确定是否还有其他的可能,但是上面提到的3个常用的是由g++支持的。我从来都不理解
main
return
int
的要求
main
是唯一明确允许具有隐式返回值的函数。为什么要特意让
main
假装成
void
,而不是简单地让它从
void
开始?@Dennis Zickefoose:听起来对stackoverflow.com来说是个很好的问题:)就在“相关”链接中:,您的标记与标题不一致。添加了
c++
tag以确保与标题一致