Chinaunix首页 | 论坛 | 博客
  • 博客访问: 348933
  • 博文数量: 88
  • 博客积分: 907
  • 博客等级: 准尉
  • 技术积分: 1230
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-26 13:27
文章分类

全部博文(88)

文章存档

2017年(1)

2014年(3)

2013年(29)

2012年(21)

2011年(26)

2010年(8)

分类: C/C++

2014-10-15 15:11:00

大学就在学C,到现在8年了,可最近发现有些东西还是没搞清楚,于是又抓起书来看,惭愧啊。
(记载一下自己理解错了的地方,免得在错)

1:sizeof,这个东东在使用中经常用到,但我并没有完全理解。

比如,struct test{
      short a;
      short b;
      short c;
};
sizeof(struct test) = ?

先前我以为等于8,结果一测试等于6。等于8是因为我认为在ARM里面都是按照4字节对其的。c使用了两个,余下两个没人用,于是等于8
但是测试过后等于6,查书才知道是等于6,书上又这么一段话:

在默认情况下,为了方便对结构体内元素的访问和管理,当结构体内的元素的长度都小于处理器的位数的时候,便以结构体里面最长的数据元素为对其单位,也就是说,结构体的长度一定是最长数据元素的整数倍。如果结构体内存在大于处理器位数的元素,哪买就以处理器的位数为对其单位,但是结构体内内型相同的元素将在连续的空间内,和数组一样。



阅读(1030) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~