当前位置: 技术问答>linux和unix
关于_attribute_的用法咨询
来源: 互联网 发布时间:2017-04-19
本文导语: 在代码中看到如下定义: #define __exit __attribute__ ((unused, __section__(".text.exit"))) unused是个枚举变量 typedef enum { unused, mode, motion, report } command_types; 这个attribute的用法是什么,该怎么来表示。和下面...
在代码中看到如下定义:
#define __exit __attribute__ ((unused, __section__(".text.exit")))
unused是个枚举变量
typedef enum {
unused, mode, motion, report
} command_types;
这个attribute的用法是什么,该怎么来表示。和下面这种用法有什么区别:
__attribute__ ((__section__ (".initcall" levle ".init"))),输入段的名称由level决定,如果level="1",则输入段是.initcall1.init,如果level="3s",则输入段是.initcall3s.init。
#define __exit __attribute__ ((unused, __section__(".text.exit")))
unused是个枚举变量
typedef enum {
unused, mode, motion, report
} command_types;
这个attribute的用法是什么,该怎么来表示。和下面这种用法有什么区别:
__attribute__ ((__section__ (".initcall" levle ".init"))),输入段的名称由level决定,如果level="1",则输入段是.initcall1.init,如果level="3s",则输入段是.initcall3s.init。
|
#define __exit __attribute__ ((unused, __section__(".text.exit")))
这里的unused不是你说的下面枚举里的值,而是表示__exit修饰的函数可能不会被调用,但是让gcc不要产生warning。
__attribute__是可以跟着attribute list的,参考下GCC的手册看看吧,
http://gcc.gnu.org/onlinedocs/gcc-4.8.1/gcc/Function-Attributes.html#Function-Attributes
6.30 Declaring Attributes of Functions里对函数的attribute有比较详细的说明。
http://gcc.gnu.org/onlinedocs/gcc-4.8.1/gcc/Attribute-Syntax.html#Attribute-Syntax
6.31里有对__attribute__语法的说明。
这里的unused不是你说的下面枚举里的值,而是表示__exit修饰的函数可能不会被调用,但是让gcc不要产生warning。
__attribute__是可以跟着attribute list的,参考下GCC的手册看看吧,
http://gcc.gnu.org/onlinedocs/gcc-4.8.1/gcc/Function-Attributes.html#Function-Attributes
6.30 Declaring Attributes of Functions里对函数的attribute有比较详细的说明。
http://gcc.gnu.org/onlinedocs/gcc-4.8.1/gcc/Attribute-Syntax.html#Attribute-Syntax
6.31里有对__attribute__语法的说明。