5
ポインタと同じサイズと位置合わせを持つ整数型はありますか?ポインタと同じサイズと位置合わせを持つ整数型はありますか?
std::intptr_t
とstd::uintptr_t
がありますが、ポインタ自体と同じアライメントがないと思います。
ポインタと同じサイズと位置合わせを持つ整数型はありますか?ポインタと同じサイズと位置合わせを持つ整数型はありますか?
std::intptr_t
とstd::uintptr_t
がありますが、ポインタ自体と同じアライメントがないと思います。
すべてのポインタ型が同じサイズと整列を持つ必要はありません。すべてのポインタ型と同じサイズと整列を持つ単一の整数型は不可能です。
オブジェクトポインタ、関数ポインタ、およびポインタへのポインタには、異なる要件があります。しかし、一部のプラットフォームでは、さらにchar*
とint*
のサイズが異なります。
どのような違いがありますか?整数型のポインタのエイリアスは、とにかく未定義の動作です。 –
@BenVoigt私はそれをしていません。むしろ、私は実行時に仮想マシンの実装のためにデータ構造のレイアウトを計算しています。整数がポインタと同じレイアウトを持つならば、より簡単です。 – rightfold
しかし、実行時に構造レイアウトを行っている場合は、アライメントは問題ではありません。明示的なパディングフィールドを追加するだけです。 – rodrigo