データ構造パティングとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > データ構造パティングの意味・解説 

データ構造パティング

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/19 14:58 UTC 版)

データ構造アライメント」の記事における「データ構造パティング」の解説

コンパイラ(またはインタプリタ)は、通常アラインされた境界上に個々データ項目を割り当てるが、データ構造はしばし異なアライメント要件有するメンバー有する適切なアライメント維持するために、トランスレータ通常追加無名のデータメンバーを挿入して、各メンバー適切にアライメントされるようにする。さらに、データ構造全体には、終端に名前のないメンバー埋め込まれている場合がある。これにより、構造体配列の各メンバ適切にアラインすることができる。 パディングは、構造体メンバの後に大きなアライメント必要なメンバがある場合、または構造体最後に挿入され場合にのみ挿入される構造体内のメンバ順序変更することで、アライメント維持するのに必要なパディングの量を変更することができる。例えば、アライメント要件小さい順にメンバソートされている場合パディング最小限で済む。必要なパディング最小量は、常に構造体内の最大アライメントよりも小さくなる。必要とされるパディング最大量の計算は、より複雑だが、全てのメンバアラインメント必要量から、構造体メンバ最小アライメントされた半分アライメント必要量合計の2倍を引いた値よりも小さい。 CとC++では、コンパイラスペース節約するために構造体メンバ並べ替えることはできないが、他の言語では可能である。また、大部分C/C++コンパイラでは、構造体メンバ一定のアラインレベルで「パック」することもできる例えば、"pack(2)"は、バイトよりも大きいデータメンバを2バイト境界アラインメントさせることを意味する全てのパッディングメンバは最大1バイト長である。 このようなパック構造用途1つは、メモリ節約することである。例えば、1バイトと4バイト整数を含む構造体には、さらに3バイトパディングが必要となる。このような構造体大きな配列は、パックされている場合メモリ使用量を37.5%減らすことができるが、各構造体へのアクセスには時間がかかる。この妥協は、時間と空間のトレードオフの一形態考えることができる。 「パック構造使用は、メモリ空間節約するために最も頻繁に使用されるが、標準プロトコル使用して送信するためにデータ構造フォーマットするために使用するともできる。しかし、この使用法では、構造体メンバの値が、プロトコルによって要求されるエンディアン多く場合ネットワークバイトオーダ)で格納されるように注意する必要がある。これは、ホストマシンがネイティブ使用するエンディアンとは異な場合がある。

※この「データ構造パティング」の解説は、「データ構造アライメント」の解説の一部です。
「データ構造パティング」を含む「データ構造アライメント」の記事については、「データ構造アライメント」の概要を参照ください。

ウィキペディア小見出し辞書の「データ構造パティング」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「データ構造パティング」の関連用語

データ構造パティングのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



データ構造パティングのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのデータ構造アライメント (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS