山口屋~活動日誌~

私生活で主な出来事をピックアップ

C言語 C++ アラインメント メモリ データ アドレス

2016-05-29 21:30:44 | ソフトウェア開発
C言語における、アラインメント。

最も詳しく解説されていると思われるページ
データ型のアラインメントとは何か,なぜ必要なのか?

・データのアドレスがNの倍数となるよう、Nバイト境界にアラインすることをアラインメントといい、一般にはNは2の冪乗である。

・sizeof演算子は、バイト数ではなく、配列要素にした場合の配置間隔を返すので、アラインメントの倍数に切り上げられ、バイト数とアラインメントが一致しない場合がある。

・つまり、バイト数が2の冪乗であるデータ型でも、バイト数とアラインメントが一致することは、あくまで可能性が高いだけとなる。

関係する実装の参考になるページ
C/C++ 関数・マクロ集 5.2 型のアラインメントを返す
C/C++ 関数・マクロ集 5.3 アラインメント調整のため,オフセットを切り上げる
境界調整(アラインメント)を調べる::実装技術

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 電線 H PH 硬銅より線 高速シ... | トップ | C言語 void* size_t char int... »
最新の画像もっと見る

コメントを投稿

ソフトウェア開発」カテゴリの最新記事