14

u_int64_t変数を検索キーにしたいのですが、

u_int64_t32 ビット マシンで使用できますか?

そうでない場合、この変数を 2 つの変数に分割する必要がありますか? それから検索キーとしては、もう少し面倒です

これに対する回避策はありますか?

4

3 に答える 3

12

符号なし 64 ビット整数型は C 標準では保証されていませんが、通常は 32 ビット マシン、および Linux を実行しているほぼすべてのマシンで使用できます。型が存在する場合は、名前が付けられ(アンダースコアが 1 つ少ないことに注意してください)、ヘッダー ファイルuint64_tで宣言されます。<stdint.h>

于 2013-05-13T11:39:01.483 に答える
5

はい 64 ビット整数データ型は 32 ビット マシンでサポートされています。

C89 標準では、long long (≥ 64、≥ size of long) 型がGNU 拡張としてサポートされています。C99 標準では、long long (≧ 64、≧ long のサイズ) 整数のネイティブ サポートがあります。

于 2013-05-13T11:41:48.553 に答える
0

一部のドキュメントまたはその読書によると、明確 ではない__GLIBC_HAVE_LONG_LONG は、32ビットアーキテクチャでの存在を定義するものです

使用方法の考えられる解決策は、以下のようなものである可能性があります

#include <sys/types.h>

#ifdef __GLIBC_HAVE_LONG_LONG

    u_int64_t i;

#endif

あ、ちなみにこれはLinuxです

于 2013-05-13T12:19:00.087 に答える