extern "C"
:这是 C++ 中的语法,用于指定一个函数或变量应该按照 C 语言的约定进行编译和链接。在 C++ 中,函数和变量的名称会根据其作用域和命名空间进行修饰,而这会导致无法和 C 语言中的函数和变量进行正确的链接。使用extern "C"
可以避免这个问题,确保这个函数或变量的名称不会被修改。
__attribute__ 介绍
__attribute__
是一个编译属性,用于向编译器描述特殊的标识、错误检查或高级优化。它是GNU C特色之一,系统中有许多地方使用到。 __attribute__
可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute)等。
__attribute__ 格式
|
|
__attribute__((constructor))
确保此函数在 在main
函数被调用之前调用,iOS中在+load
之后main
之前执行。 constructor
和destructor
会在ELF
文件中添加两个段-.ctors
和.dtors
。当动态库或程序在加载时,会检查是否存在这两个段,如果存在执行对应的代码。
|
|
|
|
__attribute__((destructor))
|
|
确保此函数在 在main
函数被调用之后调
参考文章
extern c __attribute__((visibility( default ))) __attribute__((used))
- quot constructor attribute externquot constructor attribute extern constructor attribute constructor attribute configure checking quot extern quot作用extern externally-managed-environment quot environment 39 quot attributeerror attribute quot connection attributes truncated 39 quot 226 attribute quot pthread_create容器attributes