Почему эта программа работает без ошибок? - PullRequest
0 голосов
/ 15 июня 2019

Это программа на C, в которую я не включил заголовочный файл, также есть нежелательные скобки, она не выдает никаких ошибок. Почему?

   int main(){
       int k;
       {
           int k;
           for (k=0;k<10;k++);
       }
   }

1 Ответ

1 голос
/ 15 июня 2019

В этом коде нет "нежелательных скобок".Есть анонимный блок, который не является ошибкой.Фактически, это разрешено спецификацией.

Ваша переменная k определена в основной области, но затем скрыта в анонимном блоке.

int main() {
  int k = 0;
    {
    int k = 1;
    // do more stuff with k
    }
  // k is still 0 here.
}

Когда я программировал на CПримерно 1000 лет назад у меня в команде были бы строгие слова для разработчика, который пытался использовать этот трюк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...