国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 界首市| 休宁县| 金川县| 浏阳市| 德阳市| 泰和县| 饶平县| 中牟县| 阜新| 射洪县| 沁水县| 利津县| 天长市| 当涂县| 梨树县| 佛坪县| 武隆县| 宝丰县| 建昌县| 武定县| 泰州市| 加查县| 五寨县| 永新县| 洞头县| 钦州市| 大洼县| 石狮市| 恩施市| 武川县| 静乐县| 福贡县| 遂宁市| 青阳县| 恭城| 工布江达县| 息烽县| 鄂托克前旗| 朔州市| 临江市| 合作市|