Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Ошибка инициализации переменной в цикле


Автор: polinin 16.4.2007, 07:13
MS VCpp Studio Enterprise 6 (SP6).

Пишу например так:
Код

...............................
for(int i=0;i<8;i++)printf("пофиг что");
for(int i=0;i<8;i++)printf("пофиг что ещё раз");
...............................

Компилируется с ошибкой типа ('i' - многократная инициализация);
Если этот же пример переписать вот так:
Код

...............................
for(int i=0;i<8;i++)printf("пофиг что");
for(     i=0;i<8;i++)printf("пофиг что ещё раз");
...............................

то ошибки нет.

Это почему так? Что я неправильно делаю?

Автор: likehood 16.4.2007, 08:47
Ты сам ответил на свой вопрос в первой строке. Это глюк шестой студии.

Автор: Earnest 16.4.2007, 09:22
6 студия не полностью поддерживает стандарт. Это не глюк, а фича. smile 
Т.е. заголовок цикла не считается внутренностью блока. Если бы ты объявил переменную i вне цикла, тебя ведь не удивило бы такое поведение? Вот 6-я студия так и делает, фактически. Соответствующее изменение стандарта относительно недавнее. Раньше (и во времена C) это считалось правильным.

Автор: polinin 16.4.2007, 12:59
Цитата(Earnest @ 16.4.2007,  09:22)
6 студия не полностью поддерживает стандарт. Это не глюк, а фича.

[quote]
6 студия не полностью поддерживает стандарт. Это не глюк, а фича.e...
[/quot

Ясно. Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)