C __attribute__ 作用

 

GNU C 的一大特色就是__attribute__ 机制。attribute 可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。

其位置约束为: 放于声明的尾部“;” 之前

attribute 书写特征为: attribute 前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__ 参数。

attribute 语法格式为: attribute ((attribute-list))

当__attribute__ 用于修饰对象时,它就如同C 语言语法体系结构的类型限定符,跟const , volatile , restrict 等属一类。
当__attribute__ 用于修饰函数时,它就相当于一个函数说明符,跟inline,Noreturn 属同一类。
当__attribute_ 用于修饰一个结构体,联合体或者枚举类型,该限定符只能放在类型标识符之前

 

 

#define TU_ATTR_ALIGNED(Bytes) __attribute__ ((aligned(Bytes)))        //字节对齐
#define TU_ATTR_SECTION(sec_name) __attribute__ ((section(#sec_name)))     // section存放
#define TU_ATTR_PACKED __attribute__ ((packed))                                             //单字节对齐
#define TU_ATTR_WEAK __attribute__ ((weak))                                     //如果在自己文件里声明weak,如果外界没有该同类函数,则用同文件里的函数,如果外界有进行函数实现,则调用外界的
#define TU_ATTR_ALWAYS_INLINE __attribute__ ((always_inline))      //强制内联函数,用于告知GCC编译器不做任何优化
#define TU_ATTR_DEPRECATED(mess) __attribute__ ((deprecated(mess))) // warn if function with this attribute is used                // 不建议使用,如果会被调用到,编译会出现该告警
#define TU_ATTR_UNUSED __attribute__ ((unused)) // Function/Variable is meant to be possibly unused                                      //加上了函数实现,如果函数没有被调用,不会出现警告
#define TU_ATTR_USED __attribute__ ((used))                                                             //函数必须被使用

 

 

 

参考链接:https://www.cnblogs.com/tureno/articles/12236495.html

posted @   cogitoergosum  阅读(187)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2021-06-08 linux thread笔记总结
点击右上角即可分享
微信分享提示