答案 0 :(得分:9)
您已经找到了C语言规范中较烦人的一个方面。他们通常不会说什么是最大值。相反,他们通常会说最大允许值是什么。
他们认识到不同的硬件/编译器/链接器环境有不同的限制,因此他们将大部分限制留给了各个工具作者。但是,他们希望在环境之间提供一些的可移植性,因此他们指定最大可以采用的最低值。
这就是我们如何得到限制,例如在消除符号歧义时只考虑标识符的前8个字符 - 他们不想强迫任何实现者处理更长的标识符,因此他们说“最小最大”长度是8。
这是同样的故事 - 他们希望程序员能够使用体面的转换,但是认识到某些平台可能无法处理巨大的转换 - 所以他们放置了一个大小足以让大多数程序员永远不知道限制,但足够小,以至于某些实现只能做到最小并且仍然是合规的。
答案 1 :(得分:2)
实现编译器必须允许至少4095个字符,但允许更多。
答案 2 :(得分:0)
“至少”意味着它是最小值,而不是最大值。
实现必须支持至少那么多,但可以支持更多。
答案 3 :(得分:0)
C标准未指定最大值。他们所指定的是允许最大值的最小值。