[OT]C CO tim chtel basnik rici?

Draček Fráček dracek.fracek na gmail.com
Středa Prosinec 31 19:04:16 CET 2014


Nahodou jsem zrovna shanel nejaky pidi C prekladac pro PC a stahl DecC++
tj. prekladac
TDM-GCC 4.8.1 64-bit
no a ten v prvnim pripade vrati -1 a v druhem 0
pricemz druha moznost vygeneruje
[Warning] right shift count >= width of type [enabled by default]

:-)

Dne 31. prosince 2014 17:45 Pavel Hudeček <edizon na seznam.cz> napsal(a):

> To je nějaký divný. Zadání je jasné:
>
> Vzít 32b int plný jedniček a 32x posunout, přičemž se doplňuje nulami.
>
> - Proč by se to mělo přeložit jinak, než pro posun o 1, 2, 17, nebo třeba
> 35 bitů?
> - Proč by mělo (není-li chyba v překladači) vycházet něco jiného než 0?
>
> PH
>
> Od: Jan Waclawek
> To zavisi od velkosti int. Ak je viac ako 32 bitov, oba pripady su
> ekvivalentne, ak menej alebo rovne, obidva su nedefinovane, takze prekladac
> ma plne pravo vygenerovat lubovolny kod, ktory moze trebars aj spadnut. Rad
> by som, ale nemam teraz moznost citovat z normy.
>
> Akurat ze gcc sa bude v prvom pripade snazit vygenerovat nejaky kod, co
> moze dopadnut vselijako v zavoslosti od konkretneho procesora; v druhom tam
> asi da v ramci jednoduchosti asi 0xFFFFFFFF, t.j. akoby shift ani nenastal;
> ale moze to byt lubovolne inak.
>
> >>>
> Na C alebo skor gcc mam tazke srdce koli inym "vlastnostiam"
> Len tak schvalne aky vysledok bude podla vas v tychto prikladoch:
>
> uint32_t addr_rem, mask;
> addr_rem = 32;
> mask = 0xFFFFFFFF >> addr_rem;
>
> A aky v pripade:
>
> mask = 0xFFFFFFFF >> 32;
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20141231/ff1762cf/attachment.html>


Další informace o konferenci Hw-list