程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++中_onexit()用法簡述

C++中_onexit()用法簡述

編輯:C++入門知識

C++中_onexit()用法簡述


引問:main 主函數執行完畢後,是否可能會再執行一段代碼?

答案:可以,可以用_onexit 注冊一個函數,它會在main 之後執行。

知識了解:

(1)使用格式:_onexit(int fun()) ,其中函數fun()必須是帶有int類型返回值的無參數函數;

(2)_onexit() 包含在頭文件cstdlib中,cstdlib為c語言中的庫函數;

(3)無論函數_onexit() 放到main中任意位置,它都是最後執行。

程序舉例分析:

#include
#include
using namespace std;


int func1(),func2(),func3();

int main(int argc,char * argv[]){

_onexit(func2);
_onexit(func1); //在此處不斷排列組合三條語句的執行順序
_onexit(func3);
cout<<"First Line"< cout<<"Second Line"< }

int func1()
{
cout<<"fun1() executed!"< return 0;
}

int func2()
{
cout<<"fun2() executed!"< return 0;
}
int func3()
{
cout<<"fun3() executed!"< return 0;
}


根據多次重新排列組合 _onexit(func2); _onexit(func1); _onexit(func3);的執行順序可知:_onexit()在main()中越靠後,則其執行順序越靠前;即越在前面的就越延後執行,有點類似‘棧’(先進後出)的特點。


ps:由於作者技術水平有限,如有錯誤和不恰當之處,還望讀者不吝賜教!

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