Фигурные скобки метода не совпадают, когда код длинный

У меня есть метод C ++ с несколькими вложенными «операторами if», которые заключены в фигурные скобки метода. При использовании соответствующих фигурных скобок Gedit я проверял, чтобы все мои фигурные скобки были правильно сопоставлены.

Проблема: Гедит заявил, что мои последние две фигурные скобки были «вне диапазона»!
Я проверил тот же код, используя Geany, и он показал правильные совпадения для всех моих фигурных скобок.

Однако при компиляции локальные переменные метода, определенные в начале метода, не были распознаны в некоторых последних записанных вложенных выражениях «if» внутри метода. Существует ли ограничение числовых кодов строк, заключенных в фигурные скобки? Или есть ли предел вложенных выражений «если и еще, если», которые могли бы вызвать эту проблему?

0

Решение

Существует ли ограничение числовых кодов строк, заключенных в фигурные скобки?

Доступно только дисковое пространство и память.

Или есть ли предел вложенных выражений «если и еще, если», которые могли бы вызвать эту проблему?

То же самое.

Очевидно, что вы ошибаетесь по поводу соответствия брекетов. Если у вас есть такой длинный метод, вы не можете быть уверены, рефакторинг его.

1

Другие решения

Очевидно, есть ограничения, так как компилятор должен отслеживать
всего в памяти, и память конечна. Я на самом деле
была ошибка нехватки памяти с g ++ (сгенерированный машиной
код). Достижение лимита должно привести к времени компиляции
ошибка, однако.

Практически, для рукописного кода, вы можете считать, что там
Нет предела современной машине. Вы вообще не должны иметь
более чем десять или пятнадцать строк в функции (хотя
Есть исключения), и вы не должны вкладывать больше, чем о
два уровня. Конечно, один из случаев, когда больше строк может
быть оправданным, это длинная последовательность if/else ifи в
в случае если if/else ifкомпилятор видит больше уровней вложенности
чем ты. Но я все равно ожидал бы современный компилятор на
современная машина для обработки пару сотен if/else if
без проблем.

1

Этот вопрос обсуждался здесь:
http://ubuntuforums.org/showthread.php?t=1175657

Кажется, действительно существует ограничение на количество символов, которые ищут для поиска соответствия.

0
По вопросам рекламы [email protected]