我使用Linux x86_64和gcc 5.2.1,並且正在使用代碼來確定C編程語言中「unsigned long long」變量的最大值。在C中使用無符號long long變量的值的警告
在我的機器中,「unsigned long long」的大小是8個字節。做數學告訴我,該範圍應該在0到(2 ** 64) - 1,它是: 0至18446744073709551615.的代碼如下:
#include<stdio.h>
int main()
{
unsigned long long a = 18446744073709551615;
printf("a: %llu\n", a);
return 0;
}
當我編譯它,我得到以下輸出:
Ascertaining_Range.c:在函數 '主':Ascertaining_Range.c:5:25: 警告:整數常數是如此之大,這是無符號無符號長 長= 18446744073709551615;
這裏我的問題是,它爲什麼會發出警告。該值在範圍的外圍。而且,它已被明確聲明爲無符號。