首页 > 代码库 > __attribute__
__attribute__
GNU C的一大特色就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。
关键字__attribute__ 也可以对结构体(struct )或共用体(union )进行属性设置。大致有六个参数值可以被设定,即:aligned, packed, transparent_union, unused, deprecated 和 may_alias 。
1、aligned (alignment)
该属性设定一个指定大小的对齐格式(以字节 为单位),例如:
struct S {
short b[3];
} __attribute__ ((aligned (8)));
typedef int int32_t __attribute__ ((aligned (8)));
该声明将强制编译器确保(尽它所能)变量类 型为struct S 或者int32_t 的变量在分配空间时采用8 字节对齐方式。
2、packed
使用该属性对struct 或者union 类型进行定义,不使用内存对齐,packed_struct 类型的变量数组中的值将会紧紧的靠在一起,aligned 属性使被设置的对象占用更多的空间,相反的,使用packed 可以减小对象占用的空间。
3、unused
使用该属性,表示可能用不到,函数参数中使用,表示参数可以不传,编译器也不会报错
//-------------------------------------------
__attribute__ 可以对函数属性进行设置,有const,noreturn
1、
__attribute__((noreturn)) 表示函数可能没有返回值,编译器处理时,没有返回值也不会报错
链接:http://www.cnblogs.com/astwish/p/3460618.html 有详细介绍
__attribute__
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。