測試背景:centos6.5,gcc編譯器 內(nèi)核版本 2.6.32-431.el6.i686
函數(shù):atexit
函數(shù)聲明: int atexit(void (* function) (void))
參數(shù):要調(diào)用的函數(shù),該函數(shù)必須不返回任何值,并且不接受任何參數(shù)。
返回值:如果函數(shù)注冊成功,則返回零值。如果函數(shù)注冊失敗,則返回非零值。
函數(shù)的作用: 設(shè)置函數(shù)退出時要執(zhí)行的功能。
描述: 當(dāng)程序正常終止時,調(diào)用由函數(shù)指針參數(shù)指向的函數(shù)。注意被調(diào)用的函數(shù)必須無返回值,無參數(shù)。如果通過對該函數(shù)的不同調(diào)用指定了多個atexit函數(shù),則它們?nèi)孔鳛槎褩R韵喾吹捻樞驁?zhí)行,即所指定的最后一個函數(shù)是在退出時首先執(zhí)行的函數(shù)。也就是說執(zhí)行順序與注冊順序相反。如果一個函數(shù)被注冊多次,則也會被執(zhí)行多次。
補(bǔ)充:c++ 官方聲明 至少支持32個atexit的注冊。
測試用例:
1、使用方法:

打印結(jié)果:

如果返回值或者參數(shù)不是空的話編譯會報錯: expected ‘void (*)(void)’ but argument is of type ‘int (*)()’
2、執(zhí)行順序與注冊順序
代碼修改如下:

輸出結(jié)果:

3、多次注冊同一函數(shù)的執(zhí)行情況
測試代碼:

打印結(jié)果:

新聞熱點(diǎn)
疑難解答