在32位平台上
struct {
unsigned char a;
int b;
short c
} s; 请问s的起始地址下面说法正确的是() struct STUDENT
{
char a;
char b;
char c;
char d;
char e;
int f;
}data; 首先最长的数据类型占 4 字节,所以是以 4 对齐。然后 a 占 1 字节,b 接在 a 后面占 1 字节,c 接在 b 后面占 1 字节,d 接在 c 后面占 1 字节,此时满 4 字节了,e 再来就要另起一行。f 想紧接着 e 后面分配,但 e 后面还剩 3 字节,小于 int 类型的 4 字节,所以 f 另起一行。即该结构体变量分配内存时如下: