Область видимости
От: vladsm Россия  
Дата: 25.09.01 06:01
Оценка:
Пример кода:

for(int i=0;i<some_number1;i++)
{
...
}

...

for(int i=0; i<some_number2;i++)
{
...
}

Компилятор (VC6, SP5) ругается, что i объявлена повторно. Это не соответствует завещанию Б.Страуструпа. В чем же дело?
Re: Область видимости
От: Lexey Россия  
Дата: 25.09.01 06:58
Оценка:
Здравствуйте vladsm, вы писали:

V>Пример кода:


V>for(int i=0;i<some_number1;i++)

V>{
V>...
V>}

V>...


V>for(int i=0; i<some_number2;i++)

V>{
V>...
V>}

V>Компилятор (VC6, SP5) ругается, что i объявлена повторно. Это не соответствует завещанию Б.Страуструпа. В чем же дело?


В компиляторе. Это известная и документированная несовместимость VC6 со стандартом. Не лечится. :)
Re[2]: Область видимости
От: Sasparella США  
Дата: 25.09.01 08:48
Оценка:
Здравствуйте Lexey, вы писали:

L>Здравствуйте vladsm, вы писали:


V>>Пример кода:


V>>for(int i=0;i<some_number1;i++)

V>>{
V>>...
V>>}

V>>...


V>>for(int i=0; i<some_number2;i++)

V>>{
V>>...
V>>}

V>>Компилятор (VC6, SP5) ругается, что i объявлена повторно. Это не соответствует завещанию Б.Страуструпа. В чем же дело?


L>В компиляторе. Это известная и документированная несовместимость VC6 со стандартом. Не лечится. :)


Если очень невмоготу напишите в самом начале

#define for if(1)for


Оптимизатор потом все равно этот маразм уберет, зато портировть куски прог в VC сможете...

Я сам на эти грабли наступал.....У меня во внутр йикле была таже переменная цикла что и во внешнем — по стандарту все ОК, а тут....



Саша.
Re[3]: Область видимости
От: Андрей Тарасевич Беларусь  
Дата: 25.09.01 16:25
Оценка:
Здравствуйте Sasparella, вы писали:

S>Если очень невмоготу напишите в самом начале


S>
S>#define for if(1)for
S>


S>Оптимизатор потом все равно этот маразм уберет, зато портировть куски прог в VC сможете...


Так как раз таки не стоит. Конструкция

if (...)
  for (...) ...;
else
  ...;


будет транслироваться неправильно. Правильный вариант

#define for if (false); else for


Best regards,
Андрей Тарасевич,
Brainbench C and C++ Programming MVP
Best regards,
Андрей Тарасевич
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.