OT odcitanie v C

Jan Waclawek konfera na efton.sk
Čtvrtek Duben 24 12:25:38 CEST 2014


>Boleni hlavy :-)

Ja viem, ale dole som uviedol dovod, preco sa tym oplati zaoberat.

>Hned prvni radek, chybi tam zavorka, takze musim zbytecne premyslet nad 
>poradim vyhodnocovani v C:

Mea culpa, naozaj by to bolo so zatvorkou ilustrativnejsie. - ma prednost
pred <, takze sa to vyhodnoti rovnako ako 

>  if ((l - h) < 3) result |= 1;

>Druha vec co vyleze z "l - h" unsigned nebo signed? Vzhledem k prapodivnym 
>vlastnostech ruznych prekladcu se clovek muze dockat velmi zvlastnich 
>vysledku.

Rozne prekladace sa vsetky musia spravat podla normy, ta pripusta niektore
implementacne definovane polozky. Relevantny rozdiel pre tento konkretny
priklad je v implementacne definovanej sirke int. Predpokladajme, ze je to
32 bitov.

Pred aritmetickymi operaciami (vratane toho porovnania) sa robia "usual
conversions", co zhruba znamena, ze ak su operandy "mensie alebo rovne"
ako int (int vie reprezentovat vsetky ich hodnoty), tak sa konvertuju na
int; ak nie, konvertuju sa na vacsi z tych dvoch operandov. Toto by malo
stacit na riesenie ulohy, ale ano, to bolenie hlavy zostava... ;-) 

wek




Další informace o konferenci Hw-list