手机
当前位置:查字典教程网 >编程开发 >C语言 >C语言中怎么在main函数开始前执行函数
C语言中怎么在main函数开始前执行函数
摘要:在gcc中,可以使用attribute关键字,声明constructor和destructor,代码如下:复制代码代码如下:#include...

在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语言读取BMP图像数据的源码

解析在main函数之前调用函数以及对设计的作用详解

C语言中基础小问题详细介绍

深入探讨C语言中局部变量与全局变量在内存中的存放位置

C 语言基础教程(我的C之旅开始了)[六]

C语言文件操作函数大全(超详细)

指向类成员函数的指针其实并非指针

C语言 解决不用+、-、×、÷数字运算符做加法的实现方法

Linux系统中C语言编程创建函数fork()执行解析

C++中Operator类型强制转换成员函数解析

精品推荐
分类导航