[elektro] megint C

SZIGETI Szabolcs szigiszabolcs at gmail.com
Tue Dec 4 11:07:51 CET 2012


Hali!

A ?: operátor alapvetően használható if/else szerkezetek kialakítására, de
ez mégis csak egy operátor, amelynek van visszatérési értéke stb. tehát
valószínűleg ezért lassabb, mert az első verzióban a 0 és 1 értékadást egy
bitnek a fordító jól megoptimalizálja, a másodikban viszont van egy
kifejezés értékének a kiszámítása, annak visszadása és végül egy bit
beállítása az érték alapján, gondlom kellő mennyiségű and or or művelettel.
De meg kellene nézni az assemblit, hogy mi keletkezik belőle.

Másrészt az && operátor az logikai, neked a &. A logikai minden esetben
igaz lesz, amíg kiki értéke nem 0.

Harmadrészt javaslok egy hasznos segédletet:
http://infoc.eet.bme.hu/jegyzet/c_puska.pdf

Operátorok, meg precedencia, meg hasonló jól össze van foglalva benne.

Szabolcs




2012. december 4. 10:53 Skandar Graun írta, <sgraun at gmail.com>:

> Na, pudingpróba történt.
> Az Arnold verziója syntax error, nem keresgéltem most benne.
> A zárójelbe tett értékekkel jó és gyors."  (kiki&&1)?(SDO=0):(SDO=1);"
>
> A "SDO=kiki&&1?0:1;" módon lefordult, elindult, de kétszer olyan hosszú
> futási idővel bír.
>
> Ellenben az érdekes az, hogy a szkópon meg nem billeg az SDO...
> Beírtam a kiki-be 0x0055-öt, de nem látom
>
> Most vagy a shiftelésem ad rossz értéket, vagy valami oknál fogva a
> kiértékelés rossz.
> Az SDO-t már teszteltem
>
> 2012. december 4. 10:39 potyo írta, <potyo.ada at gmail.com>:
>
> > (kiki&&1)?(SDO=0):(SDO=1);
> -----------------------------------------
>           elektro[-flame|-etc]
>


More information about the Elektro mailing list