美文网首页
__attribute__((constructor)) 的用法

__attribute__((constructor)) 的用法

作者: GradientDescent | 来源:发表于2020-04-02 16:04 被阅读0次

    GCC 支持class, variable, funciton 属性,constructor, destructor 分别可以在main() 先后执行,可用于全局资源初始化和回收;

    __attribute__((constructor)) static void func() {
        // ...
    }
    

    以下内容摘自GCC手册:
    https://gcc.gnu.org/onlinedocs/gcc-4.7.0/gcc/Function-Attributes.html#Function-Attributes

    constructor
    destructor
    constructor (priority)
    destructor (priority)
    The constructor attribute causes the function to be called automatically before execution enters main (). Similarly, the destructor attribute causes the function to be called automatically after main () has completed or exit () has been called. Functions with these attributes are useful for initializing data that will be used implicitly during the execution of the program.
    You may provide an optional integer priority to control the order in which constructor and destructor functions are run. A constructor with a smaller priority number runs before a constructor with a larger priority number; the opposite relationship holds for destructors. So, if you have a constructor that allocates a resource and a destructor that deallocates the same resource, both functions typically have the same priority. The priorities for constructor and destructor functions are the same as those specified for namespace-scope C++ objects (see C++ Attributes).

    相关文章

      网友评论

          本文标题:__attribute__((constructor)) 的用法

          本文链接:https://www.haomeiwen.com/subject/zzvxphtx.html