我听说 VC++(不确定哪个版本)对嵌套if
语句的数量(大约 300 个)有限制。代码的形式为:
if (a) ...
else if (b) ...
else if (c) ...
...
我惊讶地发现这种事情是有限制的,而且限制是如此之小。我不是在寻找关于编码实践以及为什么要完全避免这种事情的评论。
这是我认为可能有一些限制的事情的列表:
- 范围(全局、类或命名空间)中的函数数。
- 单个语句中的表达式数量(例如,复合条件)。
- 开关中的案例数。
- 函数的参数数量。
- 单个层次结构中的类数(继承或包含)。
还有哪些其他控制结构/语言功能有这样的限制?语言标准是否说明了这些限制(可能是实现的最低要求)?有没有人在使用特定的编译器/实现时遇到过这样的特定语言限制?
编辑:请注意,上述形式的if
陈述确实是“嵌套的”。它相当于:
if (a) { //...
}
else {
if (b) { //...
}
else {
if (c) { //...
}
else { //...
}
}
}