请问这个结构体所占的空间大小是___字节.typedef struct { int a,char b,short c,short d,}AA_t;为什么?

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 15:38:14
请问这个结构体所占的空间大小是___字节.typedefstruct{inta,charb,shortc,shortd,}AA_t;为什么?请问这个结构体所占的空间大小是___字节.typedefst

请问这个结构体所占的空间大小是___字节.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 字节.