国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言中怎么在main函數(shù)開始前執(zhí)行函數(shù)

2020-01-26 15:46:35
字體:
供稿:網(wǎng)友

在gcc中,可以使用attribute關(guān)鍵字,聲明constructor和destructor,代碼如下:

復(fù)制代碼 代碼如下:

#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中,可以使用如下方法:
復(fù)制代碼 代碼如下:

#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)用多個函數(shù),在gcc下使用attribute聲明多個constructor、destructor,vc下在before、after數(shù)組中添加多個函數(shù)指針。

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

圖片精選

主站蜘蛛池模板: 承德县| 调兵山市| 敖汉旗| 沭阳县| 怀仁县| 宣恩县| 湖北省| 平昌县| 莒南县| 曲麻莱县| 内黄县| 淮安市| 华坪县| 商都县| 靖西县| 易门县| 石城县| 大厂| 榆树市| 丘北县| 黔南| 吴江市| 西青区| 田阳县| 津南区| 麻江县| 原平市| 米易县| 吴江市| 米林县| 邮箱| 江山市| 临城县| 黎川县| 桐城市| 马公市| 夏河县| 卢湾区| 革吉县| 和平县| 丘北县|