手机
当前位置:查字典教程网 >编程开发 >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函数开始前执行函数】相关文章:

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

C语言之free函数以及野指针介绍

c语言在控制台判定鼠标左键的小例子

如何通过函数指针调用函数(实现代码)

linux下C语言中的mkdir函数与rmdir函数

C++初始化函数列表详细解析

C语言读取BMP图像数据的源码

C语言中判断int,long型等变量是否赋值的方法详解

C语言中函数声明与调用问题

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

精品推荐
分类导航