printf
タイプの値を出力する関数を使用しているときに問題が発生しましたunsigned long long int
何が悪いのかわかりません。Windows 7 Professional 64ビットでDev-Cpp 4.9.9.2とVisual Studio 2010 Professionalを使用しています(Cコンパイラではないことは知っていますが、とにかく試してみたいと思いました)。表示するために、%llu
修飾子を使用しました(How do you printf an unsigned long long int(the format specifier for unsigned long long int)?に従って)が、I64dも効果なしで試しました...
まず、( fromunsigned long long int
を使用して)の最小値と最大値を出力したかっただけですULONG_MAX
limits.h
printf("unsigned long long int: \n%llu to %llu \n\n", 0, ULONG_MAX);
戻り値:
unsigned long long int: 18446744069414584320 ~ 1580552164021 (Dev-Cpp)
unsigned long long int: 18446744069414584320 から 0 (Visual Studio)
次に、printf
2つのゼロを印刷するために使用しようとしました
printf("unsigned long long int: \n%llu to %llu \n\n", 0, 0);
戻り値:
unsigned long long int: 0 ~ 1580552164021 (Dev-Cpp)
unsigned long long int: 0 から 0 (Visual Studio)
ULONG_MAX
2つの値も試しました
printf("unsigned long long int: \n%llu to %llu \n\n", ULONG_MAX, ULONG_MAX);
戻り値:
unsigned long long int: 18446744073709551615 ~ 1580552164021 (Dev-Cpp)
unsigned long long int: 18446744073709551615 から 0 (Visual Studio)
なぜそのように振る舞うのですか?説明していただけますか?