繁体   English   中英

UINT_MAX与C中的ULONG_MAX相同

[英]UINT_MAX the same as ULONG_MAX in C

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

起初,我将UINT_MAX-1 ,但是后来我使用了%u占位符,但是现在它给了我与ULONG_MAX相同的数字。

在附录B的书中,他们说UINT_MAX应该为65535ULONG_MAX应该为4294967295 ,但是运行该练习时,它给我的UINT_MAXULONG_MAXUINT_MAX4294967295

这是为什么?

首先,打印unsigned long的正确方法不是%u而是%lu 其次,标准说UINT_MAX 的最小值是65535。它可以(通常是)更大。

5.2.4.2.1整数类型的大小

其实现定义的值的大小 (绝对值)应等于或大于所示的相同符号。

在32位平台上, intlong通常是相同的,因此它们的最大值也相同。 当然,对于未签名的同行也是如此。

附录是错误的。 唯一的保证是sizeof(long)> = sizeof(int)> = sizeof(char)注意相等的可能性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM