sizeof(unsigned long)がシステムで8になっても、大きな正の整数(8バイト)を使用できるようにしたいほとんどのシステムではunsigned longが4バイトしかなく、少なくとも8バイトであることが保証されているので、unsigned long longをlong longにすることにしました。unsigned long longと符号なしlong(移植性の観点)
私はそれをもっと使うほど、(コンパイラに依存して)いくつかのシステムではprintfも%lluでフォーマットし、%lldでフォーマットするものもあります。
私のコードは、64ビットのdebianマシンでのみ動作し、unsigned longは8バイトになります。移植性は大きな問題ではありません。このような状況では、符号なしlong longをunsigned long longより長く使用するのは残念ですが、unsigned long longをunsigned longより長く使用する利点はありますか?
あなたは 'uint64_t'を試しましたか?それは ' 'にあります。 –
Mysticial
符号なしlong longより長く使うことの利点は何ですか? –
厳密に64ビットの型を持たず、長い型の長い型の場合は、コンパイルを停止します。両方ともC++ 11に存在していますが、どちらも以前は拡張子として存在していましたが、時には存在していてもいなくても驚くことはありません。もしあなたがそれを持っていなければ、stdint.hはlong型よりもエミュレートする方が簡単です(型が存在すると仮定します)。 – AProgrammer