此問題來自:c和c++程式設計師面試秘笈 p15
方法:用atexit()函式來註冊 程式正常終止時要被呼叫的函式
用法:用 法: int atexit(void (*func)(void));其引數是乙個指標函式,指向乙個沒有引數也沒有返回值的函式
例子:
#include
#include//atexit包含在此
void fn1(void);
void fn2(void);
int main()
void fn1()
void fn2()
輸出:
main exit…
calling fn2()…
calling fn1()…
輸出順序與註冊順序相反!!!
main函式之前還能執行程式?
在了解這個之前,我們首先要知道 四區的概念 堆區和棧區顯然都是在程式執行後進行的,所以它們都是在main後面。因此就需要從全域性區和 區入手,區顯然不行,因此只剩下全域性區了。結果也就是可以定義全域性物件或者變數。定義全域性物件或者變數 全域性變數 當定義全域性變數a的時候,就會呼叫show函式,因...
c 中static變數在main函式之前執行
c c 語言中,在執行main的入口函式之前,是會首先執行一段 而對於全域性變數和static的初始化就是 在main函式之前執行的,例子如下 cpp view plain copy include include class static name static intstatic print p...
C 中先於main執行
在c 中實現先於main執行 include stdafx.h include include include include include using namespace std typedef struct info bool operator const info info2 info vo...