__attribute__
__attribute__
是 GCC 和 Clang 编译器提供的一个编译器扩展,用于给变量、函数或类型添加特殊属性(attributes),从而影响编译器对它们的处理方式。在 C 和 Objective-C 中,__attribute__
可以用于设置特定编译行为,比如函数的优化方式、内存对齐、清理代码等。
__attribute__
的常见用途
__attribute__
的常见用途__attribute__((cleanup))
:在变量作用域结束时自动调用指定的清理函数。常用于资源管理,比如自动释放内存、文件关闭等。__attribute__((deprecated))
:标记函数或变量为过时,使用时编译器会发出警告。这在提醒开发者避免使用老旧接口时很有用。__attribute__((aligned))
:指定变量或结构体的内存对齐方式,以提升内存访问效率或满足特定的硬件要求。__attribute__((noreturn))
:用于标记不返回值的函数,例如直接退出程序的函数。编译器会据此优化代码。__attribute__((format))
:帮助编译器检测格式化函数(如printf
)中的格式化错误。这对于自定义格式化输出函数尤其有用。
语法
__attribute__
的一般形式为:__attribute__((attribute_list))
,其中 attribute_list
是逗号分隔的属性列表,作用的代码元素可以是函数、变量、类型或结构体等。
Last updated