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
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号