1

C++ の異なる OS バージョン間でデータ型を変更する必要があります。Hファイルにマクロを定義することは可能ですか?良い練習になるでしょうか。

if os_version=32
             long =long
    if os_version=64
              long =int

64ビットマシンか32ビットマシンかを判断するのに役立つマクロ/変数はありますか?

4

2 に答える 2

4

代わりに正確な幅の整数型を使用できます (で宣言<cstdint>)

int8_t
int16_t
int32_t
int64_t

このようにして、サイズを提供するすべてのプラットフォームでサイズが固定されます。

于 2013-01-29T09:22:47.433 に答える
2

stdint.h ライブラリを使用することをお勧めします。

実際のところ、「int」タイプはもう使用していませんが、32 ビットの符号なし整数には uint32_t を、64 ビットの符号なし整数には uint64_t を使用しています。

このライブラリは、他のタイプを提供します。そのため、これを使用することで、ターゲット プラットフォーム (32/64 ビット) を気にする必要がなくなります。

短所は、既に使用されているすべての型をコードに変更する必要があることですが、コードは間違いなく移植性が高くなります。

于 2013-01-29T09:29:59.373 に答える