您发现了C语言规范中比较烦人的一面。它们通常不会说最大值是多少,而是通常会说明“最大允许值的最小值”是什么。他们认识到不同的硬件/编译器/链接器环境有不同的限制,因此他们把大部分限制留给了各个工具的作者。但是,他们希望在不同的环境之间提供一定程度的可移植性,因此他们指定了“最大值”可以达到的“最小值”。这就是我们得到的限制,例如只有前8个字符的标识符在消除歧义时被考虑在内 - 他们不想强迫任何实现者处理更长的标识符,因此他们说“最小的最大长度”是8。这里也是同样的情况 - 他们希望程序员能够使用足够大的转换,但是也认识到有些平台可能无法处理巨大的转换 - 因此他们设定了一个足够大以使大多数程序员永远不需要知道极限的大小,但同时又足够小以使一些实现仅执行最小的操作并仍然符合规范。