首页 > 其他 > 详细

__attribute__

时间:2014-11-16 11:59:41      阅读:263      评论:0      收藏:0      [点我收藏+]

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)) 表示函数可能没有返回值,编译器处理时,没有返回值也不会报错
 
 

__attribute__

原文:http://www.cnblogs.com/bizhu/p/4101195.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!