Я слышал об ограничении в VC ++ (не знаю, какая версия) на количество вложенных операторов if
(где-то в пределах 300). Код был в форме:
if (a) ...
else if (b) ...
else if (c) ...
...
Я был удивлен, обнаружив, что является пределом для такого рода вещей, и что предел настолько мал. Я не ищу комментарии о практике программирования и о том, зачем вообще избегать подобных вещей.
Вот список вещей, которые я себе представляю может иметь некоторые ограничения:
- Количество функций в области (глобальная, класс или пространство имен).
- Количество выражений в одном выражении (например, составные условия).
- Количество дел в выключателе.
- Количество параметров для функции.
- Количество классов в одной иерархии (наследование или ограничение).
Какие другие структуры управления / языковые функции имеют такие ограничения? Говорят ли языковые стандарты об этих пределах (возможно, минимальные требования для реализации)? Кто-нибудь сталкивался с определенным языковым ограничением, подобным этому, с конкретным компилятором / реализацией?
РЕДАКТИРОВАТЬ: Обратите внимание, что вышеприведенная форма if
операторов действительно "вложенные". Это эквивалентно:
if (a) { //...
}
else {
if (b) { //...
}
else {
if (c) { //...
}
else { //...
}
}
}