zoukankan      html  css  js  c++  java
  • 2)main函数在执行前和执行后有哪些操作

    main函数执行之前,主要就是初始化系统相关资源
         1. 设置栈指针
         2. 初始化static静态和global全局变量,即data段的内容
         3. 将未初始化部分的全局变量赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL,等等,即.bss段的内容     
         4. 全局对象初始化,在main之前调用构造函数
         5. 将main函数的参数,argc,argv等传递给main函数,然后才真正运行main函数

    main函数执行之后:
         1. 全局对象的析构函数会在main函数之后执行; 
         2. 可以用_onexit 注册一个函数,它会在main 之后执行; 

    如果你需要加入一段在main退出后执行的代码,可以使用onexit()函数,注册一个函数。 
     
            #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. 
     
  • 相关阅读:
    Hbase-06-Snapshot原理
    Hbase-05-备份表数据
    Hbase-04-hbck
    Python Exception Handling
    10.TiPD 调度
    8.存储引擎TiFlash
    6.TiDB数据库的存储
    7.存储引擎TiKV
    4.Tidb SQL优化(一)
    5.TiDB SQL优化(二)
  • 原文地址:https://www.cnblogs.com/weilf/p/4157213.html
Copyright © 2011-2022 走看看