9

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

4

1 回答 1

25

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
);

OS X:(来源

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

int main(int argc, char **argv, char **envp, char **apple)
于 2010-03-26T17:09:23.207 回答