main()在C/C++中有多少个参数

osg*_*sgx 8 c c++ program-entry-point

使用了main多少个参数?main可能有哪些定义变体?

Bri*_*ndy 24

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
);
Run Code Online (Sandbox Code Playgroud)

OS X :( 来源)

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

int main(int argc, char **argv, char **envp, char **apple)
Run Code Online (Sandbox Code Playgroud)