Cita:
Empezado por senda
Primero se ejecuta A, y luego (esto es lo que quiero saber) si A es falso ¿se ejecuta B o se pasa directamente a D?
|
Hay una directiva llamada $B, si $B es $B-, eso significara que esto se analizara de la manera "perezosa", osea que tomando tu ejemplo, si A no cumple la condición, pasara a ejecutar D y no tomara en cuenta a B. Si $B es igual a $B+ entonces hara lo contrario.
Nota: $B por defecto es negativo.
Cita:
Empezado por Ayuda de Delphi
Boolean short-circuit evaluation
Type Switch
Syntax {$B+} or {$B-}
{$BOOLEVAL ON} or {$BOOLEVAL OFF}
Default {$B-}
{$BOOLEVAL OFF}
Scope Local
Remarks
The $B directive switches between the two different models of code generation for the and and or Boolean operators.
In the {$B+} state, the compiler generates code for complete Boolean expression evaluation. This means that every operand of a Boolean expression built from the and and or operators is guaranteed to be evaluated, even when the result of the entire expression is already known.
In the {$B-} state, the compiler generates code for short-circuit Boolean expression evaluation, which means that evaluation stops as soon as the result of the entire expression becomes evident in left to right order of evaluation.
For further details, see the section "Boolean operators" in the Object Pascal Language Guide.
|