struct结构体变量

img


为什么答案等于32呀我算的是27,10+4+1+4+4+4char不是一个字节嘛

字节对齐,起始位置能被4整除,12+4+4+4+4+4

这东西没有统一的“答案”。正因为不同编译器编译出来长度不同,所以才需要sizeof。
32非常好理解,编译器会对内存访问进行对齐。即浪费一点内存空间,但是把所有的成员都放在4的倍数的地址上,这样做可以提高内存读写的性能。

可以去了解下结构体对齐补齐规则