c: MISRA2012

Miroslav Mraz mrazik na volny.cz
Pátek Březen 26 17:20:48 CET 2021


Ještě jednou se zeptám - zaručuje norma pro jazyk C, že konstantní výraz 
typu (20.1 / 1.1) bude _opravdu_ vyhodnocen už při překladu ?

Pokud ne, pak není divu, že MISRA nadává. Hloupý překladač z let dávno 
minulých to bude opravdu počítat v runtime, protože (hloupý) parser mu 
to tak předhodí. A MISRA neumí věštit z křišťálové koule jaký překladač 
a s jakou optimalizací bude použit.

Mrazík

Dne 26. 03. 21 v 16:38 Jan Waclawek napsal(a):
> Ozaj, a
> 
> uint8_t x = (uint8_t) ((double) (20.1 / 1.1));
> 
> ste uz skusali?
> 
> wek
> 


Další informace o konferenci Hw-list