c 中main 函式執行完後還能執行其它語句嗎?

2021-07-24 14:48:30 字數 416 閱讀 9127

此問題來自: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...