手机
当前位置:查字典教程网 >编程开发 >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++运算符重载 成员函数与友元函数详解

深入解析C++中的构造函数和析构函数

深入解析函数指针与返回函数的指针

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

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

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

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

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

如何解决C语言,函数名与宏冲突

精品推荐
分类导航