Tôi có một vấn đề trong khi sử dụng chức năng printf
để in giá trị của loại unsigned long long int
In ấn unsigned long Loại dài int Value Trả kết quả Strange
Tôi không có ý tưởng gì sai. Tôi đang sử dụng Dev-Cpp 4.9.9.2 và Visual Studio 2010 Professional (tôi biết rằng nó không phải là trình biên dịch C, nhưng dù sao, muốn thử) trên Windows 7 Professional 64-bit. Để hiển thị, tôi đã sử dụng %llu
modifier (theo How do you printf an unsigned long long int(the format specifier for unsigned long long int)?) nhưng tôi cũng đã cố gắng I64d không có hiệu lực thi hành ...
Trước hết, tôi chỉ muốn in giá trị tối thiểu và tối đa unsigned long long int
(sử dụng ULONG_MAX
từ limits.h
)
printf("unsigned long long int: \n%llu to %llu \n\n", 0, ULONG_MAX);
Returns:
unsigned long long int: 18446744069414584320-1580552164021 (Dev-Cpp)
unsigned long long int: 18446744069414584320-0 (Visual Studio)
Sau đó, tôi đã cố gắng để sử dụng printf
để in hai số không
printf("unsigned long long int: \n%llu to %llu \n\n", 0, 0);
Trả lại:
unsigned long long int: 0-1580552164021 (Dev-Cpp)
unsigned long long int: 0-0 (Visual Studio)
Cũng cố gắng hai ULONG_MAX
giá trị
printf("unsigned long long int: \n%llu to %llu \n\n", ULONG_MAX, ULONG_MAX);
Trả lại:
unsigned long long int: 18446744073709551615-1580552164021 (Dev-Cpp)
unsigned long long int: 18446744073709551615-0 (Visual Studio)
Tại sao nó cư xử như thế? Bạn có thể giải thích cho tôi không?
0 là int, không dài. –
Điều đó thật cẩu thả. –