为什么C有这些奇怪的翻译限制(第2.2.4.1节)?

时间:2015-10-06 12:13:18

标签: c compiler-construction programming-languages limit

前几天我只是浏览C标准,关于翻译限制的章节确实让我感到难过。为什么有些翻译限制2 ^ n,其他2 ^ n + 1和其他2 ^ n-k(对于一些小k)?

以下是一些例子:

  • 15个复合语句的嵌套级别,迭代控制 结构和选择控制结构

  • 在完整声明者中用括号嵌套的31个声明符

  • 在完整表达式中用括号嵌套的32个表达式

  • 内部标识符中的31个重要的初始字符或a 宏名称

  • 一个翻译单元中的511个外部标识符

  • 逻辑源行中的509个字符

  • 257个switch语句的案例标签(不包括任何案例标签) 嵌套开关语句)

为什么不是一切都只是两个人的力量?

1 个答案:

答案 0 :(得分:1)

  

为什么不是一切都只是两个人的力量?

对我来说,一旦你添加回车和换行,它们中的大部分看起来都像2 n - 1,甚至是行长。

顺便提一下,这些是最低限度。允许编译器超过它们。