打印

如何确定结构体中成员的个数?如何确定结构体中的字节数

[复制链接]
3159|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ARM白痴|  楼主 | 2008-6-25 13:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
typedef struct
{
  unsigned char a;
  unsigned char b;
  unsigned char c;
  unsigned int  d;
  unsigned char e;  
} Data_TypeA 

typedef struct
{
  Data_TypeA aa;
  Data_TypeA bb;
  Data_TypeA cc;
  Data_TypeA dd;
  Data_TypeA ee;  
} Data_TypeB 

如何确定Data_TypeA的字节数?
如何确定Data_TypeB的成员个数?

相关帖子

沙发
dld2| | 2008-6-25 13:56 | 只看该作者

sizeof

使用特权

评论回复
板凳
ayb_ice| | 2008-6-25 14:19 | 只看该作者

sizeof

使用特权

评论回复
地板
随波逐流| | 2008-6-25 21:35 | 只看该作者

建议把unsigned int d 放到结构体的头 再用sizeof

使用特权

评论回复
5
wlsui| | 2008-6-25 22:10 | 只看该作者

很麻烦的一个问题

如果按楼主的方法,一般的编译器都会为了内存对齐而插入一些空白字节(这就是为什么4楼会那样建议),但有些编译器是否这样做是可设置的,也就是说,楼主的结构体占用的字节数有可能会因编译器的设置不同而不同.
不过一般编译器都支持对元素按顺序进行排放,而不产生空白字节,如用__packed关键字.

使用特权

评论回复
6
随波逐流| | 2008-6-25 22:22 | 只看该作者

LS的__packed 对所有编译器都有用吗 被sizeof坑坏了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

119

帖子

0

粉丝