在某些特殊情况下,可能要求结构未填充(因此确保结构的内存不包含未初始化的字节)。
虽然可以使用#[repr(packed)]
,但这意味着您的成员可能没有最佳的访问权限。
在C中,某些软件使用手动填充,其中GCC的-Wpadded
可用于警告结构是否填充。
结构填充时有没有办法警告/错误?
或者某种方式确保手动填充结构没有任何填充?
我能想到的最接近的是两次定义结构,打包一次,然后检查尺寸是否不同,但这是一个kludge。
谨慎使用include
可能会避免实际写出两次结构,但它仍然是最后的手段。