• 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. 
     
  • 相关阅读:
    走进AngularJs(二) ng模板中常用指令的使用方式
    mysql知识汇总
    存储动态数据时,数据库的设计方法
    js判断密码强度
    svg―Raphael.js Library(一)
    常用js代码
    IE6实现图片或背景的圆角效果
    巧用css border
    IE6下的效果
    理解盒模型
  • 原文地址:https://www.cnblogs.com/weilf/p/4157213.html
Copyright © 2020-2023  润新知