麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > 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語言,那可以繼續關注武林技術頻道,武林小編會每日進行更新。

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

圖片精選

主站蜘蛛池模板: 特级黄色一级毛片 | 国产成人强伦免费视频网站 | 中文国产在线视频 | julieann艳星激情办公室 | 久久久一区二区三区精品 | 成年人视频在线免费观看 | 成人免费毛片在线观看 | 久草久视频 | 一级成人毛片 | 中文字幕极速在线观看 | 色蜜桃av | 男人天堂免费 | 久久久久久久久久久久久国产精品 | 日韩午夜一区二区三区 | 成人福利视频在线 | 伊人在线视频 | 亚洲国产网站 | 黄色男女视频 | 一区二区免费看 | 斗破苍穹在线观看免费完整观看 | 成人短视频在线观看免费 | 国产精品成人一区二区三区电影毛片 | 精品一区二区三区免费 | 久色porn| 黄色成人短视频 | 国产美女视频黄a视频免费 日韩黄色在线播放 | 香蕉在线播放 | 黄在线免费| 久色成人网 | 粉嫩粉嫩一区二区三区在线播放 | 国产成人精品网站 | 国产精品视频一区二区三区四 | 欧美 videos粗暴 | 久久55 | 精品三区视频 | 国产一级免费不卡 | 91看片在线播放 | 国产成人在线一区 | 亚洲成人在线免费观看 | 蜜桃网站在线观看 | 久久久久亚洲美女啪啪 |