嵌入式

编程与应用
posts - 14, comments - 1, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

对齐方式demo

Posted on 2012-04-15 14:18 陈显锋 阅读(259) 评论(0)  编辑 收藏 引用 所属分类: c/c++
#include <stdio.h>

/*
 *    对齐方式
 *  #pragma pack(push)   //保存当前对齐方式,未保存时,保存的为系统定义的对齐方式
 *  #pragma pack(int n)  //以n字节对齐
 *  #pragma pack(pop)    //恢复保存的对齐方式
 *  #prama pack()        //恢复系统定义的对齐方式  
 *  #pragma pack(int n) 作用范围为到下一个#pragma pack(int n)
 *  良好的编程习惯是先保存当前对齐方式,设定完后,恢复保存的对齐方式
 
*/


#define SIZE_ALINE    4
#define ALINE(size)   (size + (SIZE_ALINE-1))&~(SIZE_ALINE-1)

#pragma pack(
2)
#pragma pack(push)
struct  AA
{
    
int   a;
    
char  b;
    
int   c;
}
;

#pragma pack(
1)
struct  BB
{
    
int   a;
    
char  b;
    
int   c;
}
;

#pragma pack()
struct  CC
{
    
int   a;
    
char  b;
    
int   c;
}
;

int main()
{
    printf(
"%d\n",sizeof(AA));
    printf(
"%d\n",sizeof(BB));
    printf(
"%d\n",sizeof(CC));
    
return 0;
}

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