次のプログラムを検討してください
#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ビット環境での適合性が向上する可能性がありますか?
構造体をファイルに保存していますが、将来的に回避策を追加したくありません。運命の物の構造のレイアウトはおそらく1993年には良い選択でしたが、今日はそうではありませんでした。