Ограничение на количество вложенных условных выражений почти наверняка будет зависеть от размера стека компилятора и структур данных, а не от того, что связано со средой выполнения, за исключением, возможно, случаев, когда пространство кода целевой средыстрого ограничен по отношению к памяти, доступной компилятору (например, с использованием современного ПК для компиляции программы для небольшого микроконтроллера с 512 байтами флэш-памяти).Обратите внимание, что для оценки глубоко вложенной комбинации логических операторов во время выполнения не требуется оперативной памяти (кроме той, которая используется для хранения самого кода), кроме той, которая требуется для наиболее сложного термина (т. Е. Памяти, необходимой для вычисления).(foo () || bar ()) && boz () '- это наибольший объем памяти, необходимой для вычисления foo (), bar () или boz ()).
На практике этоНи в коем случае нельзя было бы достичь предела, используя современный компилятор на современной машине, если только вы не пишете «программу» для конкретной цели ее превышения (я ожидаю, что предел будет, вероятно, между 1000 и 1 000 000 уровней вложенности, нодаже если это «только» 1000, нет смысла вкладывать вещи так глубоко).