深入探討:main函數(shù)執(zhí)行完畢后,是否可能會(huì)再執(zhí)行一段代碼?
更新時(shí)間:2013年05月29日 10:47:30 作者:
本篇文章是對(duì)main函數(shù)執(zhí)行完畢后,是否可能會(huì)再執(zhí)行一段代碼,進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
可以使用atexit()函數(shù)注冊(cè)一個(gè)函數(shù),代碼如下:
#include "stdafx.h"
#include <iostream>
using namespace std;
//int _onexit(void (*function)(void)); //這句可以要也可以不要
void f1()
{
cout << "f1()" << endl;
}
void f2()
{
cout << "f2()" << endl;
}
void f3()
{
cout << "f3()" << endl;
}
void f4()
{
cout << "f4()" << endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
atexit(f1);
atexit(f2);
atexit(f3);
atexit(f4);
cout << "main function." << endl;
return 0;
}
輸出結(jié)果:
main
f4()
f3()
f2()
f1()
注意:atexit函數(shù)是按照棧的規(guī)則來(lái)調(diào)用注冊(cè)的函數(shù),先調(diào)用的最后輸出,后調(diào)用的最先輸出。
PS:以上是網(wǎng)上大部分人認(rèn)為的,還有很多人持有不同意見(jiàn)。在此,保留一定的看法!不足之后,還望指正!
復(fù)制代碼 代碼如下:
#include "stdafx.h"
#include <iostream>
using namespace std;
//int _onexit(void (*function)(void)); //這句可以要也可以不要
void f1()
{
cout << "f1()" << endl;
}
void f2()
{
cout << "f2()" << endl;
}
void f3()
{
cout << "f3()" << endl;
}
void f4()
{
cout << "f4()" << endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
atexit(f1);
atexit(f2);
atexit(f3);
atexit(f4);
cout << "main function." << endl;
return 0;
}
輸出結(jié)果:
復(fù)制代碼 代碼如下:
main
f4()
f3()
f2()
f1()
注意:atexit函數(shù)是按照棧的規(guī)則來(lái)調(diào)用注冊(cè)的函數(shù),先調(diào)用的最后輸出,后調(diào)用的最先輸出。
PS:以上是網(wǎng)上大部分人認(rèn)為的,還有很多人持有不同意見(jiàn)。在此,保留一定的看法!不足之后,還望指正!
您可能感興趣的文章:
- JavaScript學(xué)習(xí)筆記(三):JavaScript也有入口Main函數(shù)
- C++改變編程入口為main函數(shù)
- C語(yǔ)言之沒(méi)有main函數(shù)的helloworld示例
- c語(yǔ)言main函數(shù)使用及其參數(shù)介紹
- C語(yǔ)言main函數(shù)的參數(shù)及其返回值詳細(xì)解析
- C語(yǔ)言中怎么在main函數(shù)開(kāi)始前執(zhí)行函數(shù)
- 深入Main函數(shù)中的參數(shù)argc,argv的使用詳解
- 解析在main函數(shù)之前調(diào)用函數(shù)以及對(duì)設(shè)計(jì)的作用詳解
- C#難點(diǎn)逐個(gè)擊破(4):main函數(shù)
- .NET中函數(shù)Main的使用技巧
相關(guān)文章
C++中的類(lèi)型轉(zhuǎn)換static_cast、dynamic_cast、const_cast和reinterpret_cas
這篇文章主要介紹了C++中的類(lèi)型轉(zhuǎn)換static_cast、dynamic_cast、const_cast和reinterpret_cast總結(jié),需要的朋友可以參考下2014-10-10C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)中約瑟夫環(huán)問(wèn)題探究
這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)中約瑟夫環(huán)問(wèn)題,總的來(lái)說(shuō)這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過(guò)程。希望通過(guò)這道題能給你帶來(lái)一種解題優(yōu)化的思路2023-01-01C++ STL入門(mén)教程(7) multimap、multiset的使用
這篇文章主要介紹了C++ STL入門(mén)教程第七篇,multimap一對(duì)多索引,multiset多元集合的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08C++實(shí)現(xiàn)日期類(lèi)(Date類(lèi))的方法
下面小編就為大家?guī)?lái)一篇C++實(shí)現(xiàn)日期類(lèi)(Date類(lèi))的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01Cocos2d-x學(xué)習(xí)筆記之CCScene、CCLayer、CCSprite的默認(rèn)坐標(biāo)和默認(rèn)錨點(diǎn)實(shí)驗(yàn)
這篇文章主要介紹了Cocos2d-x學(xué)習(xí)筆記之CCScene、CCLayer、CCSprite的默認(rèn)坐標(biāo)和默認(rèn)錨點(diǎn)實(shí)驗(yàn),這是一個(gè)非常值得研究的問(wèn)題,需要的朋友可以參考下2014-09-09