__attribute__((constructor)) 和 __attribute__((destructor)) 如何工作
何时使用 __attribute__((constructor))运行?
此属性在加载共享库时运行,通常在程序启动期间运行。
为什么有两个括号?
所有 GCC属性遵循此语法,大概是为了将它们与函数调用区分开。
属性'性质
属性是GCC特定的语法,而不是函数或宏。
兼容性
__attribute__((constructor)) 和 __attribute__((destructor)) 在 C 中都有效和 C .
函数静态要求
使用 __attribute__((constructor)) 和 __attribute__((destructor)) 属性的函数不需要是静态的。
__attribute__((析构函数)) 运行时间
析构函数在共享库卸载时运行,通常在程序退出时运行。
构造函数和析构函数机制
共享对象文件包含引用用构造函数和析构函数属性标记的函数的特殊节(.ctors 和 .dtors)。动态加载器在库加载和卸载期间调用这些函数。静态链接器中存在用于启动和关闭的类似机制。
以上是`__attribute__((constructor))` 和 `__attribute__((destructor))` 在 C/C 中如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!