C++ の異なる OS バージョン間でデータ型を変更する必要があります。Hファイルにマクロを定義することは可能ですか?良い練習になるでしょうか。
元
if os_version=32
long =long
if os_version=64
long =int
64ビットマシンか32ビットマシンかを判断するのに役立つマクロ/変数はありますか?
C++ の異なる OS バージョン間でデータ型を変更する必要があります。Hファイルにマクロを定義することは可能ですか?良い練習になるでしょうか。
元
if os_version=32
long =long
if os_version=64
long =int
64ビットマシンか32ビットマシンかを判断するのに役立つマクロ/変数はありますか?
代わりに正確な幅の整数型を使用できます (で宣言<cstdint>
)
int8_t
int16_t
int32_t
int64_t
このようにして、サイズを提供するすべてのプラットフォームでサイズが固定されます。
stdint.h ライブラリを使用することをお勧めします。
実際のところ、「int」タイプはもう使用していませんが、32 ビットの符号なし整数には uint32_t を、64 ビットの符号なし整数には uint64_t を使用しています。
このライブラリは、他のタイプを提供します。そのため、これを使用することで、ターゲット プラットフォーム (32/64 ビット) を気にする必要がなくなります。
短所は、既に使用されているすべての型をコードに変更する必要があることですが、コードは間違いなく移植性が高くなります。