u_int64_t
変数を検索キーにしたいのですが、
はu_int64_t
32 ビット マシンで使用できますか?
そうでない場合、この変数を 2 つの変数に分割する必要がありますか? それから検索キーとしては、もう少し面倒です
これに対する回避策はありますか?
符号なし 64 ビット整数型は C 標準では保証されていませんが、通常は 32 ビット マシン、および Linux を実行しているほぼすべてのマシンで使用できます。型が存在する場合は、名前が付けられ(アンダースコアが 1 つ少ないことに注意してください)、ヘッダー ファイルuint64_t
で宣言されます。<stdint.h>
はい 64 ビット整数データ型は 32 ビット マシンでサポートされています。
C89 標準では、long long (≥ 64、≥ size of long) 型がGNU 拡張としてサポートされています。C99 標準では、long long (≧ 64、≧ long のサイズ) 整数のネイティブ サポートがあります。
一部のドキュメントまたはその読書によると、明確 ではない__GLIBC_HAVE_LONG_LONG は、32ビットアーキテクチャでの存在を定義するものです
使用方法の考えられる解決策は、以下のようなものである可能性があります
#include <sys/types.h>
#ifdef __GLIBC_HAVE_LONG_LONG
u_int64_t i;
#endif
あ、ちなみにこれはLinuxです