構造体のパディング
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/08 17:59 UTC 版)
利用者定義型の大きさはアライメントのためにメンバの大きさの合計よりも大きくなることが規格では許されている。次のコードは多くの環境において8と出力される。 struct student { char grade; /* charは1バイト */ int age /* intは4バイト */};printf("%zu", sizeof (struct student)); この理由は、多くのコンパイラでは通常ワード単位にデータを揃えるためであり、個々のメンバも境界を揃えられる。上の場合は、境界調整によってメンバ変数のageが次のワード単位に置かれる。このような構造体には境界調整のためにメンバ間やメンバの後ろに「パディング」と呼ばれる余分な隙間が置かれる。多くのCPUではデータがワード単位のメモリアドレスに置かれていた方が高速に読み書きでき、また中にはワード単位に揃えられていないと読み書きできないCPUもある。 「バスエラー」も参照
※この「構造体のパディング」の解説は、「sizeof」の解説の一部です。
「構造体のパディング」を含む「sizeof」の記事については、「sizeof」の概要を参照ください。
Weblioに収録されているすべての辞書から構造体のパディングを検索する場合は、下記のリンクをクリックしてください。
全ての辞書から構造体のパディングを検索
- 構造体のパディングのページへのリンク