![]() |
1
1
正如其他人所说,你遇到了你的结构填充。C语言本身没有任何东西可以有效地阻止这种情况。您的编译器可能对
包装
事物,例如gcc将其实现为
在这种情况下,如果您的编译器在16位上对齐(现在很少),那么您只需浪费8个额外的位就可以了
|
![]() |
2
2
我猜你有填充问题。基址有24位“剩余”,参数struct中添加的16位可以放入其中。为什么要使用位域?他们被普遍认为是个坏主意。 |
![]() |
3
1
|
![]() |
Rajesh · 添加偏移量时数组名称上的sizeof运算符 7 年前 |
![]() |
fatdragon · 结构具有并集时的意外大小 7 年前 |
![]() |
razorozx · C++如何获取父数据类型的sizeof? 7 年前 |
![]() |
WonFeiHong · 通过sizeof会发生什么 7 年前 |
![]() |
Sato · 如何使gcc警告未定义的结构? 7 年前 |
![]() |
msc · C和C中sizeof算子的不同输出++ 8 年前 |
![]() |
Raul GrigoraÈcu · 指向数组最后一个元素的C指针 8 年前 |