OT Ceckarsky kviz

Josef Stengl ok1ced@nagano.cz
Čtvrtek Březen 5 13:19:03 CET 2009


Mely by se, nebo se vyhodnocuji? Ja mam zafixovano, ze na toto ze neda v 
C spolehnout, tak musim vrazet zavorky (nebo jine postupy), abych to 
zajistil. Jste si jist ze norma C urcuje poradi vyhodnocovani vyrazu 
striktne z leva do prava? To ze to dela kompilator je jina vec, na to 
nelze obecne spolehat.
ced



Miroslav Šinko wrote:
> No ja to skusim, ale z pohladu bitoveho OR maju vyrazy vlavo a vpravo
> roznaku vahu napriek zatvorke, t.j. mali by sa vyhodnocovat zlava.
>
> miro
>
> 2009/3/5 Pavel Troller <patrol@sinus.cz>:
>   
>> Zdravim,
>>  nu, ja si nejsem zcela jist, zda to tak je zcela dobre :-). Protoze
>> parser aritmetiky napred vyhodnoti vyraz v zavorce, takze zavola
>> GetByte(), ktere precte LSB, a dalsi GetByte() se zavola az potom a
>> to precte MSB. Tim padem budou bajty v cisle prohozeny...
>>  Pro ucely citelnosti a jistoty provedeni bych radeji volil trosku
>> komplikovanejsi zapis
>>
>>  uint8_t lo, hi;
>>  uint16_t a;
>>  ...
>>  lo = GetByte(); hi = GetByte();
>>  a = hi << 8 | lo;
>>
>>  S pozdravem Pavel Troller
>>
>>
>>     
>>> Vyraz sa vyhodnocuje zlava, t.j. z tohto pohladu ano. Ja by som pre
>>> istotu este pouzil zatvorky
>>> uint16_t a = GetByte() | (GetByte() << 8);
>>>
>>> Zatvorky pouzivam radsej viac, ako menej aj tam, kde to poradie
>>> vyhodnocovania operatorov nevyzaduje. Profesionalna cest/necest,
>>> istota je istota a je to aj pre mna prehladnejsie.
>>>
>>> miro
>>>
>>> Dňa 5. marec 2009 12:21, Jan Waclawek <konfera@efton.sk> napísal/a:
>>>       
>>>> Mam nejaku funkciu, nazvime ju GetByte(), ktora mi vrati byte (uint8_t), napriklad z nejakej komunikacnej linky, alebo z nejakeho kruhoveho bufferu. Na tej linke alebo v tom bufferi je ulozene 16-bitove cislo, LSB first, a ja ho citam takto:
>>>>
>>>> uint16_t a = GetByte() | GetByte() << 8;
>>>>
>>>> Je to takto dobre?
>>>>
>>>> wek
>>>>
>>>>
>>>> _______________________________________________
>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>> Hw-list@list.hw.cz
>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>
>>>>         
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list@list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>       
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list@list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>     
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>   




Další informace o konferenci Hw-list