请分别解释下 typedef struct TYPE sizeof 是什么意思?
设typedefstruct{inta;chars[10];}TYPE;TYPEu1;则printf(“%d\n”,sizeof(u1));的输出是。请分别解释下type...
设typedef struct{int a;char s[10];}TYPE;
TYPE u1;则printf(“%d\n”,sizeof(u1));的输出是 。
请分别解释下 typedef struct TYPE sizeof 是什么意思? 展开
TYPE u1;则printf(“%d\n”,sizeof(u1));的输出是 。
请分别解释下 typedef struct TYPE sizeof 是什么意思? 展开
展开全部
typedef 定义一个新的类型
struct 定义一个结构体
TYPE 用户自定义的结构体
sizeof 获取类型的内存占用大小
结构体的的内存分配缺省对齐方式遵循以下几点
【1】结构体变量的首地址能够被其最宽基本类型成员的大小所整除
【2】结构体每个成员相对于结构体首地址的偏移量是成员大小的整数倍
【3】结构体的总大小为结构体最宽基本类型成员大小的整数倍
以上都是结构体中只有基本类型时的缺省对齐方式,当有嵌套复合成员时,
【2】改为:复合成员相对于结构体首地址偏移量是复合成员最宽基本类型大小的整数倍
所以分析你上面的
typedef struct{int a;char s[10];}TYPE;
先是第一成员int 4个字节,然后还有个char 1个字节,总大小为 4+1*10=14
为了满足第第三条准则,即总大小 4为最宽基本类型的整数倍,明显14不是最宽基本类型 int(4) 的整数倍,所以总大小为4*4=16
struct 定义一个结构体
TYPE 用户自定义的结构体
sizeof 获取类型的内存占用大小
结构体的的内存分配缺省对齐方式遵循以下几点
【1】结构体变量的首地址能够被其最宽基本类型成员的大小所整除
【2】结构体每个成员相对于结构体首地址的偏移量是成员大小的整数倍
【3】结构体的总大小为结构体最宽基本类型成员大小的整数倍
以上都是结构体中只有基本类型时的缺省对齐方式,当有嵌套复合成员时,
【2】改为:复合成员相对于结构体首地址偏移量是复合成员最宽基本类型大小的整数倍
所以分析你上面的
typedef struct{int a;char s[10];}TYPE;
先是第一成员int 4个字节,然后还有个char 1个字节,总大小为 4+1*10=14
为了满足第第三条准则,即总大小 4为最宽基本类型的整数倍,明显14不是最宽基本类型 int(4) 的整数倍,所以总大小为4*4=16
亚果会
2024-04-11 广告
2024-04-11 广告
Goma Greens是一家专注于提供高品质有机蔬果的企业。我们致力于为消费者带来新鲜、健康、无污染的食材,以满足现代人对健康生活的追求。我们的产品均来自精心挑选的有机农场,通过严格的品质控制,确保每一份食材都达到最高标准。此外,我们还提供...
点击进入详情页
本回答由亚果会提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询