パディング | Programming Place Plus 用語集

トップページ用語集

名称

このページでは、プログラミングや通信分野におけるパディングを説明します。ほかにも、デザインの領域での「パディング」があります。

解説

なんらかの目的のために、データの途中や前後に追加する、それ自体には意味を持たないデータのこと、あるいはそうしたデータを追加することをいいます。

パディングがビット単位のものであればパティングビット(詰め物ビット)、バイト単位のものであればパディングバイト(詰め物バイト)などと呼ぶことがあります。

パディングを追加する主な理由は、1つにはデータの大きさを一定にするため、もう1つにはアラインメントのためです。

前者は、なんらかの制約があるだとか、大きさが揃っていたほうが効率がよくなる理由があるといったことから、データの大きさを一定にしたい場合です。たとえば 128バイトの大きさでデータを扱いたいが、実際のデータが 90バイトしかないのなら、不足している 38バイトをパディングで補うということです。

後者のアラインメントのために追加するパディングの例としては、構造体メンバのあいだ、あるいは末尾に追加されるパディングがあります。

C言語による解説が、C言語編第26章および第37章にあります。

いずれにしても、パディングとして追加された部分の中身には用がないので適当な内容で埋めることになります。このとき本当に適当にしてしまう場合もありますし(そのときのメモリの内容をそのままにしておく)、きれいに 0 で埋めておく場合もあります。前者は余計な手間がなく効率的ですが、パディング部分の内容を参照するプログラムを書いてしまうと、そこにある内容は不定なのでバグの原因になります。

構造体のパディングによるバグの話題は、C言語編>逆引き>2つの構造体が一致しているか調べるにあります。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る