在gcc中,可以使用attribute關鍵字,宣告constructor和destructor,**如下:
[cpp]view plain
copy
print?
#include
__attribute((constructor)) void before_main()
__attribute((destructor)) void after_main()
int main( int argc, char ** argv )
vc不支援attribute關鍵字,在vc中,可以使用如下方法:
[cpp]view plain
copy
print?
#include
intmain( int argc, char ** argv )
int before_main()
int after_main()
typedef
int func();
#pragma data_seg(".crt$xiu")
static func * before = ;
#pragma data_seg(".crt$xpu")
static func * after = ;
#pragma data_seg()
編譯執行,上述兩段**的結果均為:
before_main
main
after_main
可以在main前後呼叫多個函式,在gcc下使用attribute宣告多個constructor、destructor,vc下在before、after陣列中新增多個函式指標。
C語言中main函式的引數
我們經常用的main函式都是不帶引數的。因此main 後的括號都是空括號。實際上,main函式可以帶引數,這個引數可以認為是 main函式的形式引數。語言規定main函式的引數只能有兩個,習慣上這兩個引數寫為argc和argv。因此,main函式的函式頭可寫為 main argc,argv 語言還規...
C語言中main函式的引數
我們經常用的main函式都是不帶引數的。因此main 後的括號都是空括號。實際上,main函式可以帶引數,這個引數可以認為是 main函式的形式引數。語言規定main函式的引數只能有兩個,習慣上這兩個引數寫為argc和argv。因此,main函式的函式頭可寫為 main argc,argv 語言還規...
c語言中的main函式討論
從剛開始寫c程式,相比大家便開始寫main 了。雖然無數的教科書和老師告訴我們main是程式的入口。那麼main函式是怎麼被呼叫的,怎麼傳入引數,返回的內容到 了,返回的內容是什麼?接下來我們來 一下這個問題。main 函式的形式 早期教材這麼寫 void main 其實翻翻c c 標準,從來沒有定...