У меня есть метод C ++ с несколькими вложенными «операторами if», которые заключены в фигурные скобки метода. При использовании соответствующих фигурных скобок Gedit я проверял, чтобы все мои фигурные скобки были правильно сопоставлены.
Проблема: Гедит заявил, что мои последние две фигурные скобки были «вне диапазона»!
Я проверил тот же код, используя Geany, и он показал правильные совпадения для всех моих фигурных скобок.
Однако при компиляции локальные переменные метода, определенные в начале метода, не были распознаны в некоторых последних записанных вложенных выражениях «if» внутри метода. Существует ли ограничение числовых кодов строк, заключенных в фигурные скобки? Или есть ли предел вложенных выражений «если и еще, если», которые могли бы вызвать эту проблему?
Существует ли ограничение числовых кодов строк, заключенных в фигурные скобки?
Доступно только дисковое пространство и память.
Или есть ли предел вложенных выражений «если и еще, если», которые могли бы вызвать эту проблему?
То же самое.
Очевидно, что вы ошибаетесь по поводу соответствия брекетов. Если у вас есть такой длинный метод, вы не можете быть уверены, рефакторинг его.
Очевидно, есть ограничения, так как компилятор должен отслеживать
всего в памяти, и память конечна. Я на самом деле
была ошибка нехватки памяти с g ++ (сгенерированный машиной
код). Достижение лимита должно привести к времени компиляции
ошибка, однако.
Практически, для рукописного кода, вы можете считать, что там
Нет предела современной машине. Вы вообще не должны иметь
более чем десять или пятнадцать строк в функции (хотя
Есть исключения), и вы не должны вкладывать больше, чем о
два уровня. Конечно, один из случаев, когда больше строк может
быть оправданным, это длинная последовательность if
/else if
и в
в случае если if
/else if
компилятор видит больше уровней вложенности
чем ты. Но я все равно ожидал бы современный компилятор на
современная машина для обработки пару сотен if
/else if
без проблем.
Этот вопрос обсуждался здесь:
http://ubuntuforums.org/showthread.php?t=1175657
Кажется, действительно существует ограничение на количество символов, которые ищут для поиска соответствия.