__attribute__((constructor))和__attribute__((destructor))
Posted 木析
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__attribute__((constructor))和__attribute__((destructor))相关的知识,希望对你有一定的参考价值。
__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
以上是关于__attribute__((constructor))和__attribute__((destructor))的主要内容,如果未能解决你的问题,请参考以下文章
__attribute__ ((__packed__)); 怎么用?
GCC的__attribute__ ((constructor))和__attribute__ ((destructor))