【发布时间】:2015-12-03 02:46:32
【问题描述】:
我正在使用带有 gcc 5.2.1 的 Linux x86_64,并且我正在使用代码来确定 C 编程语言中“unsigned 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:在函数“main”中:Ascertaining_Range.c:5:25: 警告:整数常量太大以至于它是无符号的 长长a = 18446744073709551615;
我的问题是它为什么会发出警告。该值在范围的外围。而且,它已被明确声明为无符号。
【问题讨论】:
标签: c