1、首先,想想C/C++在main函数之前和之后会做些什么?
我们看看底层的汇编代码:
__start:
:
init stack;
init heap;
open stdin;
open stdout;
open stderr;
:
push argv;
push argc;
call _main; (调用 main)
:
destory heap;
close stdin;
close stdout;
close stderr;
:
call __exit;
我们可以看到main函数也只是其中的一个函数调用而已。
在调用main函数之前,会先进性初始化栈,堆,打开标准输入,输出,错误流,把参数压栈。还有一些全局变量、对象和静态变量、对象的空间分配和赋初值。
在调用main函数之后,要销毁堆内存,关闭标准输入,输出,错误流。
这些都是编译器帮助我们自动生成的,帮助我们启动main函数。
2、main()函数及其参数
C++标准允许主函数main()有或没有参数列表。 您能在主函数main()中使用一个或更多的参数。 如下是一些惯例:
int main(int argc, char *argv[])
第一个参数argc,指明有多少个参数将被传递给主函数mai