Как использовать Visual Studio 2017 только для компиляции кода C и не учитывать c ++? - PullRequest
0 голосов
/ 25 февраля 2019

На языке C вам не разрешено делать объявления после первого функционального оператора, однако, когда я компилирую свою программу с этой ошибкой, она все еще работает, и c ++ вступает во владение.Как я могу предотвратить это?

1 Ответ

0 голосов
/ 25 февраля 2019

Компилятор C, используемый Visual Studio 2017, более или менее совместим с C99.

В C99 переменные могут быть объявлены в другом месте, в начале области, как в C ++.

Таким образом, этот фрагмент кода является допустимым C99, но он недействителен C89:

int foo(void)
{
  printf("Hello. ");
  int bar = 2;
  printf("Bar = %d\n", bar);
}

Это допустимо C89:

int foo(void)
{
  int bar = 2;
  printf("Hello. ");
  printf("Bar = %d\n", bar);
}

Более подробная информация здесь: https://en.wikipedia.org/wiki/ANSI_C#C89

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