2015-11-27 6 views
5

ポインタと同じサイズと位置合わせを持つ整数型はありますか?ポインタと同じサイズと位置合わせを持つ整数型はありますか?

std::intptr_tstd::uintptr_tがありますが、ポインタ自体と同じアライメントがないと思います。

+2

どのような違いがありますか?整数型のポインタのエイリアスは、とにかく未定義の動作です。 –

+0

@BenVoigt私はそれをしていません。むしろ、私は実行時に仮想マシンの実装のためにデータ構造のレイアウトを計算しています。整数がポインタと同じレイアウトを持つならば、より簡単です。 – rightfold

+0

しかし、実行時に構造レイアウトを行っている場合は、アライメントは問題ではありません。明示的なパディングフィールドを追加するだけです。 – rodrigo

答えて

4

すべてのポインタ型が同じサイズと整列を持つ必要はありません。すべてのポインタ型と同じサイズと整列を持つ単一の整数型は不可能です。

オブジェクトポインタ、関数ポインタ、およびポインタへのポインタには、異なる要件があります。しかし、一部のプラットフォームでは、さらにchar*int*のサイズが異なります。

関連する問題