マルチプラットフォーム時代の型
Delphi には元々、Integer とか Cadinal と言った整数型があります。
ですが、今やこれらの型名は NativeInt や LongWord といった型のエイリアスと書いてあったり(実際には違います)します。
それじゃあ、NativeInt とか NativeUInt は何よっていう話ですが、これらは 32bit プラットフォームでは 32bit、64bit プラットフォームでは 64bit の整数を表す型です。
また、それに対して、プラットフォームに関わらず必ず 32bit 固定の型 FixedInt, FixedUInt もあります。
これについて詳しくは下記の DocWiki を参照してください。
ビット数に即した型名(エイリアス)
ということで、Integer とか NativeInt や FixedInt, LongWord とか、色々と型があって、マルチプラットフォームでは少々ややこしいです。
そこで、型のエイリアスを使うと解りやすく書けます。
エイリアス | ビット数 |
---|---|
Int8 | 8 |
Int16 | 16 |
Int32 | 32 |
Int64 | 64 |
うわあ!表にするまでも無く解りやすうい!
符号無し整数型や実数型についても同様で
エイリアス | ビット数 |
---|---|
UInt8 | 8 |
UInt16 | 16 |
UInt32 | 32 |
UInt64 | 64 |
エイリアス | ビット数 |
---|---|
Float32 | 32 |
Float64 | 64 |
と定義されています。
(そもそも実数型は Real を除いて Single / Double なんだからそのままなんですけどね…)
なお、全ての型のサイズについては下記の DocWiki をご覧ください。
まとめ
これからは型のエイリアスを使った方が解りやすそうです。
とはいえ、今や 32bit のバイナリが動作するのは Windows のみ…(iOS は 2017/9, Android は 2019/8, macOS は 2019/10 に 32bit アプリの実行またはストアへアップできなくなりました)
マルチプラットフォーム時代の!などとぶち上げましたが、実際に影響が大きいのは Windows でしょう。
ということで、VCL ユーザーも気になる Windows 64bit 対応については公式の DocWiki も参考になりますが、DEKO さんの「64 ビット Windows プログラミング ガイド for Delphi 64 ビット コンパイラ」が解りやすく参考になります。