码迷,mamicode.com
首页 > 其他好文 > 详细

__attribute__

时间:2014-11-16 12:02:58      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   os   使用   sp   div   

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__

标签:style   blog   http   io   ar   os   使用   sp   div   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!