请问这个结构体所占的空间大小是___字节.typedef struct { int a,char b,short c,short d,}AA_t;为什么?
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 03:21:11
xSN@EB=)lJ]cR"aaPLPyӕ`;J!ťv3=ιibKvڸ>fiY-HuWnԚQ/64!%
GQ )D &8D3ƜBaѯFXR@D2s{`?WWοi;,PecJo
PDԄ7ꡂf #iKWʠOt%@,P>gMH[kA2
V$-SV;PA Hp8r#=ɫmBIPUj]gTkA7^ ]OeV"/\]{N]a`+!]X&.ڲ}x.4e8%4
请问这个结构体所占的空间大小是___字节.typedef struct { int a,char b,short c,short d,}AA_t;为什么?
请问这个结构体所占的空间大小是___字节.typedef struct { int a,char b,short c,short d,}AA_t;
为什么?
请问这个结构体所占的空间大小是___字节.typedef struct { int a,char b,short c,short d,}AA_t;为什么?
一般编译器为 12 个字节.
因为 一般编译器 定义 int 为 4 字节,short 为 2字节, char 为 1字节,而且要考虑 内存分配 4 字节对齐.
int a; -- 需要 4 bytes
char b; -- 需要 1 byte
short c; -- 需要 2 bytes
short d; -- 需要 2 bytes.
分配 a 4 字节
分配 b c 4 字节 (浪费1字节 )
分配 d 4 字节 (浪费2字节 )
共用去 12 字节.
-----------
国内尚用的过时的编译器TC,定义 int 为 2 字节. 内存分配 2 字节对齐:
int a; -- 需要 2 bytes, 分配 2
char b; -- 需要 1 byte, 分配 2
short c; -- 需要 2 bytes, 分配 2
short d; -- 需要 2 bytes. 分配 2
共用去 8 字节.