c++在main()函数执行之前执行了那些操作?
一开始可能会有点懵,但是回想我们的代码,在main()函数之前一般会有哪些代码?比如库的包含(#include …),比如一些宏定义,全局变量的定义,想到这儿大体就有点思路了。函数执行之前,我们需要进行一些相关资源的分配,才能保证函数能够运行起来。具体来说:1、初始化栈的指针栈用于存储一些需要的局部变量或者其他数据2、静态变量或者全局变量的初始化3、如果全局变量未初始化,如果是内置类型会执行默认初
·
一开始可能会有点懵,但是回想我们的代码,在main()函数之前一般会有哪些代码?
比如库的包含(#include …),比如一些宏定义,全局变量的定义,想到这儿大体就有点思路了。函数执行之前,我们需要进行一些相关资源的分配,才能保证函数能够运行起来。
main函数执行之前
具体来说:
1、初始化栈的指针
栈用于存储一些需要的局部变量或者其他数据
2、静态变量或者全局变量的初始化(data段)
3、如果全局变量未初始化,如果是内置类型会执行默认初始化,数值型short,int,long等为0,bool为FALSE,指针为NULL,等等(bss段)
4、一些非内置类型,会调用默认构造函数进行初始化
5、main()函数的参数压栈(int argc, char **argv)
6、可能还会有标准输入输出或者错误流的初始化
main函数执行之后
那么相应的,main()函数执行之后,也需要进行相应资源的释放,比如要销毁堆内存,以及流的关闭。
更多推荐
所有评论(0)