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

首頁 > 編程 > C > 正文

C語言中怎么在main函數開始前執行函數

2020-01-26 15:46:35
字體:
來源:轉載
供稿:網友

在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數組中添加多個函數指針。

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

圖片精選

主站蜘蛛池模板: 久久成人精品视频 | 国产精品欧美久久久久一区二区 | 日韩av日韩 | 免费视频www在线观看 | 欧美性生活xxxxx | 欧美一级特级 | 露脸各种姿势啪啪的清纯美女 | 国产一级免费av | 久久露脸国语精品国产91 | 亚洲四播房 | 电影av在线| 999久久国精品免费观看网站 | 二区三区四区视频 | 久久影院在线观看 | 香蕉黄色网 | 国产99久久精品一区二区300 | 毛片免费看的 | 欧美精品久久久久久久久久 | 91精品国产乱码久 | 久久久久久久久久久久99 | 一级毛片在线视频 | 97久久精品一区二区三区观看 | 特级毛片a级毛片100免费 | 久久国产91| av在线一区二区三区 | 吾色视频 | 中文亚洲视频 | 久操福利视频 | 亚洲精品欧美二区三区中文字幕 | 粉嫩av一区二区三区四区在线观看 | 天天曰夜夜操 | 国产精品视频yy9299一区 | 韩国美女一区 | 欧产日产国产精品乱噜噜 | 黄色av.com | 黄色成人av在线 | 国产1区在线观看 | 国产精品无码久久久久 | 成人在线观看免费观看 | 一区二区三区视频在线 | 国产二三区|