概述
struct s1
{
char *ptr,ch;
union A
{
short a,b;
unsigned int c:2, d:1;
};
struct s1* next;
};//这样是12个字节
struct s1
{
char *ptr,ch;
union
{
short a,b;
unsigned int c:2, d:1;
};
struct s1* next;
};//这样是16个字节
需要说明的问题有3点:
1.UNION后面不跟A,是声明了结构体的一个成员,占内存,而后面跟了A定义了一个类型,没有分配内存
2.联合体UNION取其中最大的类型的内存分配大小
3.关于char ch,如果你连着分配4个char,都是那些字节,这个东西好象叫做内存对齐,对于什么时候才内存对齐不太了解,因为sizeof(char)是一个字节
最后
以上就是拉长寒风为你收集整理的关于结构体,联合体及内存大小的问题的全部内容,希望文章能够帮你解决关于结构体,联合体及内存大小的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复