手机
当前位置:查字典教程网 >编程开发 >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语言中结构体的初始化

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

函数式宏定义与普通函数的区别

c语言中数组名a和&a详细介绍

C++运算符重载 成员函数与友元函数详解

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

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

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

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

C语言中函数与指针的应用总结

精品推荐
分类导航