大家好,今天来给大家分享一些结构体的知识,结构体是我们学习数据结构的基础,只有把它了解清楚才能让我们学习数据结构是得心应手,现在让我们来看看它的一些内容吧。
1.结构体的定义和调用我们就跳过吧 大家如果还不熟悉的话可以去查阅资料,这个是书面知识我们就不多说。
2.结构体对齐
大家肯定会好奇结构体的空间是多大吧?是不是所有类型空间的总和呢?答案是不对,我们结构体引入了一个概念,就是结构体对齐,它有这样一些计算方法:
1.第一个成员在与结构体变量偏移量为0的地址处。
2.其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。对齐数=编译器默认的一个对齐数与该成员大小的较小值。。 VS中默认的值为8.
3.结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。
4.如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。
下面给大家分享一些结构体,大家可以去算一算
2.结构体位段
2.位段的空间上是按照需要以4个字节(int)或者1个字节(char)的方式来开辟的。 1.位段的成员可以是int unsigned int signed int或者是char(属于整形家族)类型
2.4位段的应用 3.位段涉及很多不确定因素,位段是不跨平台的,注重可移植的程序应该避免使用位段。
再给大家分享一道位段的题目,大家有兴趣也可以算一算
好了,今天分享就到这里,谢谢大家!