hak*_*ata 0 c unsigned kr-c max long-integer
在解决K&R C书中的练习时,我偶然发现了练习2.1.
起初,我为UINT_MAX
作为-1
,但后来我用的%u
占位符,但现在它让我有相同的号码ULONG_MAX
.
在这本书的附录B,他们说,UINT_MAX
应该是65535
和ULONG_MAX
应4294967295
,但在运行时的运动,它的给我两个UINT_MAX
和ULONG_MAX
作为4294967295
.
这是为什么?
首先,打印一个正确的方式unsigned long
是不是%u
,但%lu
.其次,标准说的最小的值UINT_MAX
是65535,可以是(并且通常是)放大.
5.2.4.2.1整数类型的大小
它们的实现定义值的大小(绝对值)应等于或大于所示的值,并带有相同的符号.