孔雀开发小屋

专注并致力于手机客户端开发
<2011年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

  • 随笔 - 103
  • 文章 - 0
  • 评论 - 251
  • 引用 - 0

常用链接

留言簿(38)

随笔分类

随笔档案

关注的博客

朋友的博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜

gcc编译器__attribute__ ((packed)) 的作用
对于如下的结构体声明:
struct Foo
{
    
char c;
    
float f;
} __attribute__((packed));

__attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐。经过上述属性设置之后,Foo结构体的大小为5个字节,如果不设置该属性并且没有显式指定字节对齐属性的话,可能为8个字节。关于字节对齐,这里不多赘述。

其中__attribute__机制是gcc编译器特有的。用来在函数或数据声明中设置其属性,__attribute__可以设置函数属性、变量属性、类型属性。

关于gcc的__attribute__的更多技术细节,可以参看如下链接:
1. http://unixwiz.net/techtips/gnu-c-attributes.html
2. http://www.yuanma.org/data/2006/0625/article_948.htm


posted on 2011-02-16 18:52 孔雀 阅读(2586) 评论(1)  编辑 收藏 引用 所属分类: C/C++

评论

# re: gcc编译器__attribute__ ((packed)) 的作用 2011-02-17 13:14 凡客成品123336

很好1233
  回复  更多评论    

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理