程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 2)main函數在執行前和執行後有哪些操作,main函數

2)main函數在執行前和執行後有哪些操作,main函數

編輯:C++入門知識

2)main函數在執行前和執行後有哪些操作,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. 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved