C語(yǔ)言中怎么在main函數(shù)開(kāi)始前執(zhí)行函數(shù)
在gcc中,可以使用attribute關(guān)鍵字,聲明constructor和destructor,代碼如下:
#include <stdio.h>
__attribute((constructor)) void before_main()
{
printf("%s/n",__FUNCTION__);
}
__attribute((destructor)) void after_main()
{
printf("%s/n",__FUNCTION__);
}
int main( int argc, char ** argv )
{
printf("%s/n",__FUNCTION__);
return 0;
}
vc不支持attribute關(guān)鍵字,在vc中,可以使用如下方法:
#include <stdio.h>
int
main( int argc, char ** argv )
{
printf("%s/n",__FUNCTION__);
return 0;
}
int before_main()
{
printf("%s/n",__FUNCTION__);
return 0;
}
int after_main()
{
printf("%s/n",__FUNCTION__);
return 0;
}
typedef int func();
#pragma data_seg(".CRT$XIU")
static func * before[] = { before_main };
#pragma data_seg(".CRT$XPU")
static func * after[] = { after_main };
#pragma data_seg()
編譯執(zhí)行,上述兩段代碼的結(jié)果均為:
before_main
main
after_main
可以在main前后調(diào)用多個(gè)函數(shù),在gcc下使用attribute聲明多個(gè)constructor、destructor,vc下在before、after數(shù)組中添加多個(gè)函數(shù)指針。
- C語(yǔ)言sizeof與字符串處理與動(dòng)態(tài)內(nèi)存分配及main函數(shù)參數(shù)詳解
- C語(yǔ)言中main函數(shù)與命令行參數(shù)詳細(xì)講解
- c語(yǔ)言中main函數(shù)用法及知識(shí)點(diǎn)總結(jié)
- C語(yǔ)言main函數(shù)的三種形式實(shí)例詳解
- C語(yǔ)言之沒(méi)有main函數(shù)的helloworld示例
- c語(yǔ)言main函數(shù)使用及其參數(shù)介紹
- C語(yǔ)言main函數(shù)的參數(shù)及其返回值詳細(xì)解析
- C語(yǔ)言中main函數(shù)兩個(gè)參數(shù)的作用
相關(guān)文章
利用Qt+opencv實(shí)現(xiàn)視頻分解為圖片
這篇文章主要為大家詳細(xì)介紹了如何利用Qt和opencv實(shí)現(xiàn)視頻分解為圖片,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
C++11實(shí)現(xiàn)簡(jiǎn)易定時(shí)器的示例代碼
這篇文章主要介紹了C++11實(shí)現(xiàn)簡(jiǎn)易定時(shí)器的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
OpenCV實(shí)現(xiàn)馬賽克和毛玻璃濾鏡特效
這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)馬賽克和毛玻璃濾鏡特效,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下方法2019-05-05

