C/C++ では、次の違いは何ですか:
u_int64 myNum;
と:
unsigned long myNum;
私が知る限り、どちらも 64 ビットのメモリを持つ符号なし整数だけを食べました。
C/C++ では、次の違いは何ですか:
u_int64 myNum;
と:
unsigned long myNum;
私が知る限り、どちらも 64 ビットのメモリを持つ符号なし整数だけを食べました。
unsigned long64 ビットである必要はありませんが、64 ビットである必要はありuint64_tません。整数型には一種の階層があり、各型は少なくとも前の型より大きくなければなりません: signed char、short、int、long、long longおよび符号なしの対応する型についても同様です。アンカーポイントがいくつかあり、それcharは 1 バイトです (1 バイトは 8 ビットである必要はありません。覚えている限り、short少なくとも2 バイト16 ビットです。C++11 では、long long は少なくとも 64 ビットです。しかし、これらのタイプのいずれも、正確に指定されたビット数ではありません。
詳細については、固定幅の整数型を参照してください (リンクについては @chris に感謝します)。
intC言語自体は、その大きさを指定していません
long少なくとも同じ長さint
long longである必要がありますlong
またu_int64_t、c99タイプであり、ANSIc89では使用できません。
また、違いのある64ビットアーキテクチャの中で、LP64はlong'sとポインタが64ビットであることを示し、LLP64は'sとポインタが64ビットであることを意味しlong longます。
unsigned longintC /C++のすべてのようにマシンに依存しています。多くのライブラリ、特に2台のマシンが相互作用できるライブラリintは、両方が同じサイズであることを確認するために、ほとんどの場合、数字のようにdefと入力します。u_int64基本的には、defを64ビットの符号なし整数に入力して、任意のマシンで使用できるようにします。理論的unsigned longには、128、64、256、またはほぼすべてのサイズにすることができます。