大学就在学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) |