Ceckarsky kviz III

Jan Waclawek konfera@efton.sk
Sobota Červen 6 19:05:16 CEST 2009


>Tech hodnot 0x7fff to melo podle me nabyvat proto, ze v nejvyssim bitu je ulozeno znamenko. To ze se zapnutymi optimalizacemi se to chova jinak nez pri vypnutych optimalizacich jste zminil az ted.

Ano, nebolo to fer ;-)

>
>Takze v tom pripade je moje prvni uvaha o znamenku spatne a zrejme se prostym pricitanim k int promenne meni hodnota v plnem rozsahu a prekladac nema duvod neco zkrouhnout.
>Spis to bude tim, ze prekladac pri optimalizaci se domniva, ze vzhledem k predchazejicimu i++ nemuze dojit k tomu, ze by bylo znamenko nekdy zaporne a tudiz tento test nedela a provadi natvrdo jen tu jednu vetev, druhou vubec do prekladu nezahrne. 


Ano, je to naozaj tak. No ale nemal by prekladac vygenerovat vzdy rovnaky vysledok, bez ohladu na zapnute ci vypnute optimalizacie? 
Co je vlastne spravne: neblikat, ci blikat?



>A to jeste v tom lepsim pripade, protoze vzhledem k while (1) a opakovanem nastavovani stejne hodnoty na port muze dojit pri optimalizaci k tomu, ze udela nastaveni te hodnoty a teprve potom udel aprazdny cyklus while (1)
>

Tomuto sa brani deklaraciou PORTA ako volatile; ale to ste tiez nemohli vediet (ak teda nepouzivate bezne avr-gcc resp. avr-libc).

wek





Další informace o konferenci Hw-list