考虑以下程序
#include <cstdio>
#include <stdint.h>
struct Foo
{
int32_t a;
int32_t b;
int32_t c;
};
struct Bar
{
int32_t a;
int32_t b;
int16_t c;
};
int main()
{
printf("sizeof(Foo)=%u\nsizeof(Bar)=%u",sizeof(Foo),sizeof(Bar));
return 0;
}
使用 MinGW 编译时,我在 32 位和 64 位系统上都得到 sizeof(Foo)=12 和 sizeof(Bar)=12(我猜在 16 位环境中,sizeof(Bar)=10)。未来这些结构的大小是否有可能是 16 以更好地适应 64 位环境?
我将结构存储在文件中,并且不想在将来添加解决方法。Doom 事物结构布局在 1993 年可能是一个不错的选择,但不是今天。