[elektro] Munka
hobilobi at gmail.com
hobilobi at gmail.com
Thu Sep 15 00:53:33 CEST 2011
2011.09.14. 8:28 keltezéssel, Szima Gábor írta:
> On Wed, 14 Sep 2011, hobilobi at gmail.com wrote:
>
>> If ((adat&1)==0)
>> "A" dolog végzése
>> else if ( (adat&1) == 1)
>> "B" dolog végzése
>> else
>> hiba jelzés
>>
>> Mikor rákérdeztem, hogy ez a hibajelzés mégis mikor fog bekövetkezni,
>> akkor kikérte magának, hogy értsem meg, Ő tesztelő volt és a nem várt
>> estekre is fel kell készülni. Hál istennek a próbaidő végén kirúgták.
> A GCC bugot kihozta volna (irtam itt par eve, hogy az if/else mindket aga
> lefutott, ha a feltetel menet kozben megvaltozott ;)
Ugyan semmi sem lehetetlen, de elég nehezen tudok ekkora fordító hibát
elhinni. (sosem használtam GCC)
Egy ilyen hibának már a 0.0-ás verzióban ki kell buknia, akkora baklövés.
>
> if ( flag == 1 ) {
>
> ...
> flag = 0;
> }
> else {
>
> ...
> }
>
> Es futott itt minden. En meg csak neztem. ;)
>
>
Ebben a példában (jó fordító esetén) sosem futhat le mindkét ág
egyszerre, mert feltétel vizsgálat csak egyszer van.
Hiába állitod a flag-et 0-ra az if ágban, attól az else ág csak a
következő ide kerüléskor fog lefutni. Persze lehet, hogy ez olyan
gyorsan bekövetkezik, hogy kivűlről nézve úgy látszik mintha rögtön
egymás után történne.
More information about the Elektro
mailing list