Cita:
Empezado por Crandel
ok, eso es asi. Pero en su caso si utiliza la variable i dentro de su ciclo, salvo que lo haya modificado en tiempo de ejecución.
Un poco extraño lo que sucede.
|
Gracias por la observación, Crandel. Es como si esa I no fuera esa I, algo está faltando...
Delphius: Lo que dices tiene lógica, pero creo que sería muy difícil para el compilador determinar si una referencia de la variable contador dentro del ciclo puede o no puede alterar el resultado de las cosas, cuando tal referencia forma parte de una expresión como "FieldByName...AsFloat". Asumiendo que estamos hablando del FieldByName de TDataSet, esas sentencias involucran llamadas a varios métodos virtuales que según su implementación podrían realizar cualquier cosa. Dichos métodos serían ejecutados en primer lugar con un campo o con otro, dependiendo de si la variable es incrementada o disminuida.
En un código como el que ha mostrado AzidRain, el compilador no debería realizar la optimización mencionada.
César, ¿qué versión del compilador es? Y, aunque la pregunta parezca tonta, ¿el código que muestras es real? ¿Podrías pegar más del mismo aquí?
Saludos.