Я полностью сбит с толку some code Я пытаюсь скомпилировать. Компилятор дает мне несколько десятков ошибок «необъявленного идентификатора». Все они, как представляется, локальные переменные цикла, как это:Являются ли необъявленные переменные законными в C++?
for (i = 0; i < 100; i++)
Я мог бы легко исправить, но я не понимаю, как этот код может быть скомпилирован для других людей. И эти файлы не были затронуты в возрасте.
Есть ли какой-то флаг компилятора для VC++, который автоматически принимает int
для необъявленных переменных? Я не мог найти его. Что дает?
Минимальный полный пример кода, который воспроизводит проблему:
for (int i = 0; i < 100; i++);
for (i = 0; i < 100; i++);
Какой компилятор предназначен для компиляции этого кода? Некоторые старые, несоответствующие компиляторы (в первую очередь, Visual Studio 6) имели область переменной, объявленной в цикле, проходящей мимо тела цикла, до конца охватывающего блока. Поэтому вы можете написать 'for (int i = 0; i <10; ++ i) {...} i = 42;' В этом файле, который вы цитируете, переменная 'iK'is сначала объявлена и используется в строке 1784, и затем повторно использовать тело этого цикла. –
@IgorTandetnik - Я думаю, вы только что его нашли ... код изначально был скомпилирован с помощью VC7 (не уверен, что Visual Studio, которая сейчас). Я надеялся, что VS2013 тоже скомпилируется. –
Попробуйте построить с помощью '' /Zc:forScope-'](http://msdn.microsoft.com/en-us/library/84wcsx8x.aspx) –