![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему возникает такое предупреждение ? [D7]
Warining © (2006-10-31 02:52:00)
for J := 0 to Length(Rec1) -1 do
Rec1.N := j;
if j > 5 then ...
[Warning] UDicFunc.pas(347): FOR-Loop variable 'j' may be undefined after loop
Возникает после того, как пытаюсь использовать j после цикла. А в каком случае J может быть неопределенно и почему ? В чём опасность ?
Warining (2006-10-31 03:41:00) [21]
> Германн © (31.10.06 03:05) [3]
> Это даже и не Warning, а в большинстве случаев Error!
> Переменная цикла существует (и то не всегда она работает
> так, как ты этого хотел) только внутри самого цикла.
> После цикла она "не определена"
Ты вроде бы более здравомыслящий.
Это именно Ворнинг, а не Еррор, а значит ничего опасного. Вот я и спрашиваю, зачем вообще тогда предупреждать ?
Кстати если поставить перед циклом j := 1;, то предупреждение останется.
Джо (2006-10-31 03:32:00) [22]Да и стандарт языка — весчь неумолимая...
Джо (2006-10-31 03:30:00) [23]Зачем магия? Ее нет. Оптимизатор заместо нее.
Warining (2006-10-31 03:26:00) [24]
> Джо © (31.10.06 03:01) [1]
>
> > А в каком случае J может быть неопределенно и почему
>
> В стандарте языка Делфи значение счетчика-переменной цикла
> после выполнения цикла не определено, т.е., может быть любым.
Что значит любым ? То код на ассемблере смотрел ? Что там, чёрная магия что ли изменит значение переменной ?
> Джо © (31.10.06 03:02) [2]
>
> Т.е., оно вовсе не обязано быть равным последнему значению
> счетчика в цикле.
Вот она ! Магия Дельфи !
Германн (2006-10-31 03:05:00) [25]
>
> Warining (31.10.06 02:52)
>
>
> for J := 0 to Length(Rec1) -1 do
> Rec1.N := j;
>
> if j > 5 then ...
>
> [Warning] UDicFunc.pas(347): FOR-Loop variable 'j' may be
> undefined after loop
>
>
> Возникает после того, как пытаюсь использовать j после цикла.
> А в каком случае J может быть неопределенно и почему ?
> В чём опасность ?
Это даже и не Warning, а в большинстве случаев Error!
Переменная цикла существует (и то не всегда она работает так, как ты этого хотел) только внутри самого цикла.
После цикла она "не определена"
Джо (2006-10-31 03:02:00) [26]Т.е., оно вовсе не обязано быть равным последнему значению счетчика в цикле.
Джо (2006-10-31 03:01:00) [27]> А в каком случае J может быть неопределенно и почему
В стандарте языка Делфи значение счетчика-переменной цикла после выполнения цикла не определено, т.е., может быть любым.
> В чём опасность ?
Опасность есть только в том случае, если не обращать внимания на стандарт языка и использовать ее после выполнения цикла.