天天看点

刷题笔记

题目:

刷题笔记

在 VS2013 下,这个结构体所占的空间大小是____字节

A. 16 B. 9 C. 12 D. 8

解:

因为 一般编译器 定义 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 字节。

结论:

默认情况下,结构体的大小是结构体中最长类型的整数倍。

结构体中的空间分布是按照结构体中最长类型对齐的。

结构体中不同类型的成员,一定是按照自己的类型对齐。比如,int型的起始地址一定是4的整数倍,short型的首地址一定是2的整数倍

继续阅读