Back to Top

main 函数

在C语言或C++编程语言,main 的函式原型如下所示:

int main(void)
int main()
int main(int argc, char *argv[])

main 的两个参数:argc(argument count)与 argv(argument vector), 分别是程序命令行参数的数量与参数阵列的指针地址。

UNIX(非POSIX.1)与 Microsoft Visual C++ 有第三个参数, 是用来接收程序的环境变量,也可以使用 stdlib.h 中的 getenv 函数直接获取:

int main(int argc, char *argv[], char *envp[])

Mac OS X 与 Apple Darwin 有第四个参数,它含有操作系统支援性的资讯,很像是执行二进制档案的路径:

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

依照一般使用的规则,指令列参数的第一个元素就是程式的名称, 如在终端中输入 rm file 后,操作系统会初始化rm程序, 设置环境变量 argc = 2 以及 argv = [“rm”, “file”]。

由 main 传给操作系统的返回值,代表程序结束状态, 在 C 的标准里有定义两个返回值:EXIT_SUCCESS(通常是整数零 0 值)与 EXIT_FAILURE。 由于在实作上考量到各种的可能性,所以依照可能会发生的状态来定义返回值。

main 这个名称是一个特有的名称; 正常来说,使用者在每个 C 与 C++ 程序自定的函数名,必须不同于 main 这个函数名。

在 C++ 里,main 一定是在全局的名称空间内(例如:::main),它不可以是类或命名空间的成员函数。