c: MISRA2012
Miroslav Mraz
mrazik na volny.cz
Čtvrtek Březen 25 18:37:03 CET 2021
V novějším C++ by to bylo asi takto
constexpr uint8_t x = lround(20.1 / 1.1) & 0xFFu;
v čistém C asi
const uint8_t x = lround(20.1 / 1.1) & 0xFFu;
ale patrně by se ta funkce lround volala, v C++ je konstantní výraz
vyhodnocen už při kompilaci (něco jako makro), takže neotravuje.
Mrazíl
Dne 25. 03. 21 v 18:02 Miroslav Draxal napsal(a):
> Dobrý den,
>
> Pokud
>
> uint8_t x = (uint8_t) (20.1 / 1.1);
>
> [misra-c2012-10.8] The value of a composite expression shall not be cast
> to a different essential type category or a wider essential type
>
> uint8_t x = (uint8_t) (20.1 / 1.1);
>
> ^
>
> Jak to správně přetypovat, aby to bylo košér. Čtu kde co, ale nějak mě
> nenapadá řešení. Pomůžete?
>
> Míra
>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
Další informace o konferenci Hw-list