Объявления переменных, следующие за операторами if
На другом форуме возникла проблема, и я знал, как ее исправить, но обнаружил особенность компилятора, свойственную мне. Человек получал ошибку «Встроенный оператор не может быть объявлением или помеченным оператором», потому что у него было объявление переменной после оператора if без скобок. Это не было их целью, но они закомментировали строку кода сразу после оператора if, что сделало объявление переменной де-факто строкой кода для выполнения. Во всяком случае, это фон, который подводит меня к этому.
Следующий код недопустим
if (true)
int i = 7;
Однако, если вы заключите это в скобки, это все законно.
if (true)
{
int i = 7;
}
Ни один фрагмент кода не является полезным. Тем не менее, второй в порядке. Чем конкретно объясняется такое поведение?