首页 > 图灵资讯 > 技术篇>正文
C++中如何在main()函数之前执行操作
2023-06-08 09:18:26
在实现main函数之前,主要是初始化系统的相关资源:
- 设置栈指针
- 初始化static静态和global全局变量,即data段的内容
- 将未初始化部分的全局变量赋予初始值:数值型short,int,long等0,bool等0FALSE,指针是NULL,等等.bss段的内容
- 全局对象初始化,构造函数在main之前调用
- 将main函数的参数,argc,将argv等传输到main函数,然后真正运行main函数
- main函数后将执行全局对象的分析函数;
- 可以用_onexit 在main注册一个函数 之后执行;
如下:
#include <stdlib.h> #include <stdio.h> int atexit(void (*function")(void)); void fn1( void ), fn2( void ), fn3( void ); int main( void ){ onexit( fn1 ); onexit( fn2 ); printf( "This is executed first." ); } void fn1(){ printf( " This is" ); } void fn2(){ printf( " executed next." ); }
运行结果
This is executed first.This is executed next.