首页 > 技术文章 > __attribute__((constructor))和__attribute__((destructor))

forest-stream 2021-05-12 10:39 原文

__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。

__attribute__前后都有两个下划线,并且后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数

__attribute__语法格式为:attribute ( ( attribute-list ) )


如果函数被设定为constructor属性,则该函数会在main()函数执行之前被自动的执行;

若函数被设定为destructor属性,则该函数会在main()函数执行之后或者exit()被调用后被自动的执行。

__attribute__((constructor))和__attribute__((destructor))在可执行文件或者库文件里都可以生效

全局变量对象的构造函数和析构函数分别在__attribute__((constructor))和__attribute__((destructor))标志的函数之前调用。


参考博客:

https://blog.csdn.net/sun172270102/article/details/88227519

https://blog.csdn.net/tianmohust/article/details/45310349?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

推荐阅读