c++primer plus 第二章

main函数

程序执行总是从main函数开始,如果有有其他函数,则完成对其他函数的调用后再返回到主函数,最后由main函数结束整个程序

1. main唯一

对于程序的全局域中,main()函数只能有一个,且这个函数不能重载,因为main()函数作为函数的入口,如果有多个,系统就找不到入口了。
对于 在类中或命名空间中,我们也是可以定义main()函数的,只是这个main()函数与全局的main()函数不是同一个函数,它们只是名字相同,功能完全不同。只是我们一般为了区分,在局部域中,定义函数时不会写成main()

2. 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函数

3. main()函数参数

C++标准允许主函数main()有或没有参数列表。 您能在主函数main()中使用一个或更多的参数。 如下是一些惯例:

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

argc 为参数个数
argv[] 传人的参数数组

a.exe a b

如上运行:
则main函数里 argv[0]=a.exe, argv[1] = a, argv[2] = b, argc = 3

预处理器

预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页