Forum » Programiranje » [C] bitni operator
[C] bitni operator
Thomas ::
Hja. Naivno razmišljanje, kot ponavadi od tistih, ki ne premislijo s svojo glavo. C++ ne naredi nič pravzaprav. Prevede strojno kodo, ki si pa ne bo špogala skoka, če ni potreben.
Tako da a&&b brez ifa spredaj bo kar eager, oziroma strict, ne pa lazy.
Tako da a&&b brez ifa spredaj bo kar eager, oziroma strict, ne pa lazy.
Man muss immer generalisieren - Carl Jacobi
Vesoljc ::
copypaste iz tukaj
5.14 Logical AND operator [expr.log.and]
1 logical-and-expression:
inclusive-or-expression
logical-and-expression && inclusive-or-expression
The && operator groups left-to-right. The operands are both implic-
itly converted to type bool (_conv_). The result is true if both
operands are true and false otherwise. Unlike &, && guarantees left-
to-right evaluation: the second operand is not evaluated if the first
operand is false.
5.14 Logical AND operator [expr.log.and]
1 logical-and-expression:
inclusive-or-expression
logical-and-expression && inclusive-or-expression
The && operator groups left-to-right. The operands are both implic-
itly converted to type bool (_conv_). The result is true if both
operands are true and false otherwise. Unlike &, && guarantees left-
to-right evaluation: the second operand is not evaluated if the first
operand is false.
Abnormal behavior of abnormal brain makes me normal...
64202 ::
Thomas: mislis rect, da se tole drugace prevede zaradi optimizacij?
int a,b;
return a&&b;
povsem mozno.
Vazno pa je, da se
return 0 && *(int*)0;
prevede lazy
int a,b;
return a&&b;
povsem mozno.
Vazno pa je, da se
return 0 && *(int*)0;
prevede lazy
I am NaN, I am a free man!
Thomas ::
> the second operand is not evaluated if the first
operand is false.
Ne verjet - tle je bistveno bolj realen pogled nekaterih.
operand is false.
Ne verjet - tle je bistveno bolj realen pogled nekaterih.
Man muss immer generalisieren - Carl Jacobi
Vesoljc ::
sem pozabil povedat, da je omenjeni copypaste iz c++ standarda.
Abnormal behavior of abnormal brain makes me normal...
Thomas ::
C++ standard je to že lahko. Kaj pa naredijo compilerji, je pa druga reč.
Še za direktno v if stavkih ne bi bil 100% da je vedno lazy.
Še za direktno v if stavkih ne bi bil 100% da je vedno lazy.
Man muss immer generalisieren - Carl Jacobi
Gundolf ::
Ne vem kaj si hotu s tem linkom povedat Thomas.
Drugače si pa brezveze merite moči na slabo zastavljenih primerih. Vsi imate prav le vsak si problem po svoje interpretira.
Drugače si pa brezveze merite moči na slabo zastavljenih primerih. Vsi imate prav le vsak si problem po svoje interpretira.
Genetic ::
Mene pa zanima, ali res lahko izklopim short circuit (lazy) evaluacijo logičnih izrazov. Dosedaj sem bil prepričan, da je to feature od jezika. Vem, da se je to dalo narediti v turbo pascalu, za c/c++ pa še nisem videl te opcije.
Ce overloadas operator && (ali ||), izgubis lazy evaluation. Vprasanje je samo, ce lahko overloadas && (ali ||) nad bool parametri.
64202 ::
> C++ standard je to že lahko. Kaj pa naredijo compilerji, je pa druga reč.
?
Pac, garantira ti lazy semantiko. Kaj pod havbo lahko zoptimizira se pa ne sekiras vec (ce uporabljas gcc/icc/vc/...). Oziroma kaj hoces povedat?
?
Pac, garantira ti lazy semantiko. Kaj pod havbo lahko zoptimizira se pa ne sekiras vec (ce uporabljas gcc/icc/vc/...). Oziroma kaj hoces povedat?
I am NaN, I am a free man!
Thomas ::
Hočem povedati to, da je edino pomembno kako skompilira, kaj "je pod havbo", kako in kaj je v resnici - kaj je deklarirano je pa malo važno.
Drži?
Drži?
Man muss immer generalisieren - Carl Jacobi
Thomas ::
Semantika že mogoče.
Dejansko izvajanje lazy semantike bi pa pomenilo še več zakulisne režije.
Dejansko izvajanje lazy semantike bi pa pomenilo še več zakulisne režije.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
No, vsaj včasih.
Ni C++ ravno Intel (AMD) ukazom prijazen. To je moja osnovna teza.
Ni C++ ravno Intel (AMD) ukazom prijazen. To je moja osnovna teza.
Man muss immer generalisieren - Carl Jacobi
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | križci krožci c # (strani: 1 2 )Oddelek: Programiranje | 11638 (10297) | Yacked2 |
» | [Java] While zankaOddelek: Programiranje | 2316 (1899) | kunigunda |
» | Nemorem rešit ene naloge z c++ (sem začetnik) (strani: 1 2 )Oddelek: Programiranje | 10308 (6046) | technolog |
» | [c] Enaki datotekiOddelek: Programiranje | 1015 (875) | Spura |
» | [C#] overloaded operator ==Oddelek: Programiranje | 1097 (976) | user4683 |