OT: c: mismatched comparison

Pavel Hudeček edizon na seznam.cz
Pondělí Červenec 29 13:41:02 CEST 2024


Výsledkem (CisloSekce - 1u) je něco uint16 a to něco může nabývat hodnot 
nad 255.

PH

Dne 29.07.2024 v 13:23 Miroslav Draxal napsal(a):
>
> Dobrý den ve spolek.
>
> Už delší dobu si lámu hlavu nad tím, co se nelíbí překladači. Je to 
> tedy vyseparované z daleko složitější podmínky, ale tohle ten problém 
> způsobuje.
>
> Microchip
>
> XC8 ver.2.46
>
> uint8_t RucneCisloSekce;
>
> uint8_t CisloSekce;
>
> if (RucneCisloSekce == (CisloSekce - 1u)) {
>
>   NOP();
>
> }
>
> Hlásí warning: (764) mismatched comparison
>
> Což je
>
> (764) mismatched comparison (Code Generator)
>
> A comparison is being made between a variable or expression and a 
> constant value which is not in
>
> the range of possible values for that expression, for example:
>
> unsigned char c;
>
> if(c > 300) /* oops -- how can this be true? */
>
> close();
>
> pokud odstraním -1, potom OK.
>
> Ano, může to přetéct z 0x00 do 0xff, ale to není „mismatched comparison“
>
> ???
>
> Díky za vysvětlení, Míra
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20240729/f871385b/attachment.htm>


Další informace o konferenci Hw-list