去小米笔试,遇到一道题:
对于 32 位操作系统, 不考虑边界对齐, sizeof (A) = __
struct A
{
char t:4;
char k:4;
unsigned short i:8;
unsigned long m;
};
想起来这只有在大一的时候看老谭的书才见过,细节已经记不太清楚了,但是想,C语言这种语法设定肯定是为了节省空间,所以如果两个或多个声明连续的成员能共享一个字节,应该是会把他们挤在一起的。
#include <stdio.h>
struct s
{
char t: 4;
char s: 4;
};
int main()
{
printf("%d\n", sizeof(struct s));
return 0;
}
输出是 1
本文探讨了32位操作系统下结构体sizeof的计算方式,通过实例展示了结构体成员如何共享字节以节省空间,并通过代码示例验证了理论分析。

6133

被折叠的 条评论
为什么被折叠?



