a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

C語言中如何在main函數開始前執行函數

2020-02-24 14:11:00
字體:
來源:轉載
供稿:網友

我在學習Python的時候,對于main的判斷有一定的了解。后來,當我學習C語言時,我發現,其實這一切都是互通的,下面就各位講解下C語言中如何在main函數開始前執行函數。

在gcc中,可以使用attribute關鍵字,聲明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關鍵字,在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()


編譯執行,上述兩段代碼的結果均為:

?

before_main

main

after_main

可以在main前后調用多個函數,在gcc下使用attribute聲明多個constructor、destructor,vc下在before、after數組中添加多個函數指針。

以上便是C語言中如何在main函數開始前執行函數的所有知識點,如果你想更深入的了解C語言,那可以繼續關注武林技術頻道,武林小編會每日進行更新。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产精品视频污 | 久久成人一区 | 91在线精品秘密一区二区 | www.色在线| aⅴ色国产 欧美 | 久在线视频 | 91精品电影 | 欧美在线观看禁18 | 在线观看免费毛片视频 | 在线观看免费av的网址 | 天天成人综合网 | 久久亚洲精品国产一区最新章节 | 久久91视频 | 91免费看片神器 | 国产精品片aa在线观看 | 亚洲伊人久久综合 | 91麻豆精品国产91久久久更新时间 | 亚洲日本在线观看 | 国产精品综合一区二区 | 国产成人99久久亚洲综合精品 | 天天色影视综合 | 久久99深爱久久99精品 | 欧洲一级大片 | 欧美成人在线免费观看 | 亚洲精品视频一区二区三区 | 男女精品网站 | 午夜免费网 | 国产一区二区精品久久 | 久久久久久亚洲 | 免费精品视频在线观看 | 国产视频1 | 成人精品一区二区三区 | 绯色av一区二区三区在线观看 | 国产精品久久久久久久久免费丝袜 | 国产成人免费网站 | 日韩av一区二区三区在线观看 | 国产精品久久久久久影视 | 特级理论片 | k8久久久一区二区三区 | 可以在线看的黄色网址 | 91视频免费网站 |