UINT_MAX与C中的ULONG_MAX相同

hak*_*ata 0 c unsigned kr-c max long-integer

在解决K&R C书中的练习时,我偶然发现了练习2.1.

起初,我为UINT_MAX作为-1,但后来我用的%u占位符,但现在它让我有相同的号码ULONG_MAX.

在这本书的附录B,他们说,UINT_MAX应该是65535ULONG_MAX4294967295,但在运行时的运动,它的给我两个UINT_MAXULONG_MAX作为4294967295.

这是为什么?

cni*_*tar 5

首先,打印一个正确的方式unsigned long是不是%u,但%lu.其次,标准说的最小的值UINT_MAX是65535,可以是(并且通常是)放大.

5.2.4.2.1整数类型的大小

它们的实现定义值的大小(绝对值)应等于或大于所示的值,并带有相同的符号.