[345] unreachable code

Jindrich Kubec kubecj na asw.cz
Pátek Květen 13 22:00:03 CEST 2011


At 21:49 13.5.2011, Hfmcons wrote:
>Zdravím,
>zkou¹ím ve volných chvílích pøevest C zdroják 
>zatím neznámého kompilátoru testovací desky na C 
>zdroják C kompilátoru Microchip. U¾ jsem v¹echny 
>rozdíly poøe¹il, ale s následujícím si zatím 
>nevím rady. Co je k èertu na téhle konstrukci 
>tak stra¹ného, ¾e jde pøelo¾it ale nefunguje funkce display7s:
>
>unsigned char display7s(unsigned char v)
>{
>   switch(v)
>   {
>     case 0:
>      return 0xEE;       //tady bude nìco v nepoøádku
>       break;              // tady to hází subj.
>
>     default:
>       return 0;
>       break;        // tady to hází subj.
>   }
>return 0;         //tady return pùvodnì nevracel 
>¾ádnou hodnotu naco¾ C MC protestoval
>}

Tak unreachable code to je, kdyz udelate ten 
return, uz se to na ty breaky nedostane.
Jakoze ausgerechnet tohle se pise jako makro, 
nejhur tedy jako return v ? 0 : 0xEE;
Pokud je to jen minimal case a tech case je tam 
vic, treba to napsat pres tempvar, vzdy nastavit 
hodnotu a na konci ji vratit - tj. jeden return.


Jindroush (kubecj na avast.com)
http://www.kostky.org - Pro fany stavebnic LEGO.



Další informace o konferenci Hw-list