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. 
     
  • 相关阅读:
    Cookie工具类
    验证工具类
    压缩工具类
    一次外企QQ面试
    利用Referer请求头阻止"盗链"
    servlet中ServletConfig的使用
    jquery插件制作
    jQuery选择器总结(转)
    js文件加载执行顺序
    mysql有关问题之:the security settings could not be applied to
  • 原文地址:https://www.cnblogs.com/weilf/p/4157213.html
Copyright © 2011-2022 走看看