首页 > 其他 > 详细

GCC的__attribute__ ((constructor))和__attribute__ ((destructor))

时间:2018-07-11 11:42:43      阅读:196      评论:0      收藏:0      [点我收藏+]

    通过一个简单的例子介绍一下gcc的__attribute__ ((constructor))属性的作用。gcc允许为函数设置__attribute__ ((constructor))和__attribute__ ((destructor))两种属性,顾名思义,就是将被修饰的函数作为构造函数或析构函数。程序员可以通过类似下面的方式为函数设置这些属性:  

void funcBeforeMain() __attribute__ ((constructor)); 

void funcAfterMain() __attribute__ ((destructor));

也可以放在函数名之前:
void __attribute__ ((constructor)) funcBeforeMain();
void __attribute__ ((destructor)) funcAfterMain();
带有(constructor)属性的函数将在main()函数之前被执行,而带有(destructor)属性的函数将在main()退出时执行。
下面给出一个简单的例子:
技术分享图片
 1 #include <stdio.h>
 2 
 3 void __attribute__((constructor)) funcBeforeMain()
 4 {
 5     printf("%s...\n", __FUNCTION__);
 6 }
 7 
 8 void __attribute__((destructor)) funcAfterMain()
 9 {
10     printf("%s...\n", __FUNCTION__);
11 }
12 
13 int main()
14 {
15     printf("main...\n");
16     return 0;
17 }
View Code

运行结果:

funcBeforeMain...
main...
funcAfterMain...

GCC的__attribute__ ((constructor))和__attribute__ ((destructor))

原文:https://www.cnblogs.com/dylancao/p/9293447.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!