当前位置: 首页 > 图灵资讯 > 技术篇> C++中如何在main()函数之前执行操作

C++中如何在main()函数之前执行操作

来源:图灵教育
时间:2023-06-08 09:18:26

在实现main函数之前,主要是初始化系统的相关资源:
  1. 设置栈指针
  2. 初始化static静态和global全局变量,即data段的内容
  3. 将未初始化部分的全局变量赋予初始值:数值型short,int,long等0,bool等0FALSE,指针是NULL,等等.bss段的内容
  4. 全局对象初始化,构造函数在main之前调用
  5. 将main函数的参数,argc,将argv等传输到main函数,然后真正运行main函数
执行main函数后:
  1. main函数后将执行全局对象的分析函数;
  2. 可以用_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.