答案:可以,可以用_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"<
int func1()
{
cout<<"fun1() executed!"<
}
int func2()
{
cout<<"fun2() executed!"<
}
int func3()
{
cout<<"fun3() executed!"<
}
根據多次重新排列組合 _onexit(func2); _onexit(func1); _onexit(func3);的執行順序可知:_onexit()在main()中越靠後,則其執行順序越靠前;即越在前面的就越延後執行,有點類似‘棧’(先進後出)的特點。
ps:由於作者技術水平有限,如有錯誤和不恰當之處,還望讀者不吝賜教!