[elektro] Munka (C kérdés)

Acs Gabor agabor at electrodesign.hu
Sat Sep 17 13:28:32 CEST 2011


Nem pont fordítva, hogy csak egyszer végez csak növelést, amikor count==0?

HG, azt ellenőrizted, hogy a fordító tényleg jól hajtja végre ezt a 
műveletet, tehát az

if (~ hatására nem nyúl véletlen a változóhoz, és hogy a változó eléri ténylegesen a maximumot?

Nekem régen volt olyan, hogy valami hasonló esetben úgy optimalizálta a fordító a műveletet, amiben volt egy logikai hiba, és ezért nem működött. A következő verzió már helyesen csinálta.



Gábor

2011.09.17. 13:00 keltezéssel, Info írta:
>>> Ez miért nem müködik?
>>>
>>> uint16_t  count;
>>>
>>> if (~count)
>>>     count++;
>>>
>>> elvileg ez csak 0xFFFF-ig számól, de KEIL fordító esetén
>>> ARM(32bit) rendszerben a nem áll le a számlálás...
>>>
>> if (!count) nem jobb?
> Nem, mert nem indul el ha count = 0 a kezdet.
> Nálam is megesett, hogy oda kellett írnom, hogy != 0) az ifbe.
> Lusta voltam meglesni az asm részét, hogy mit is akart csinálni
> pontosan :) így inkább odaírtam.
>
>
>
>
>
> -----------------------------------------
>            elektro[-flame|-etc]
>
>   _____________ NOD32 6433 (20110903) Információ _____________
>
> Az üzenetet a NOD32 antivirus system megvizsgálta.
> http://www.nod32.hu
>
>
>



More information about the Elektro mailing list