C言語で利用するsizeof(x)はxの正味のサイズではなく、 xのアラインメントの倍数に切り上げた値になる。 基本的なデータ型のアラインメントは、下に示すようにその型のサイズ に一致することが多い。 例外もあるのだが(詳しくはこちらを参考)、ここではとにもかくにも一致するとする。 では、複合データ型(構造体など)では具体的にどういったサイズになるのであろうか。 例題を使って考えてみよう。 ◆ 基本的なデータ型のアラインメント 構造体のアラインメントを考える前提として、 先にも述べたように、各データ型のサイズとアラインメントは以下とする。 ・char サイズ : 1バイト アラインメント : 1バイト ・short サイズ : 2バイト アラインメント : 2バイト ・int サイズ : 4バイト アラインメント : 4バイト ・dou