OT: c: mismatched comparison
Miroslav Draxal
evik na volny.cz
Středa Červenec 31 12:57:25 CEST 2024
Dobrý den,
Ještě se k tomu vrátím, asi záleží jak máte nastaveno warning level (manual
k xc8 4.5.3.1)
Míra
-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Jan Waclawek
Sent: Tuesday, July 30, 2024 11:56 AM
To: hw-list na list.hw.cz
Subject: Re: OT: c: mismatched comparison
[preposielam]
Dobry den,
nechcem byt za hnidopicha, ale skusil som ten Vas kod strcit do svojho
aktualneho testovacieho zdrojaku a kupodivu ziadny warning sa mi
neobjavil... Ta inicializacia a incrementy su kvoli optimalizacii, aby to
kompilator nevyhodil z kodu.
XC8 ver.2.46, PIC18F47k42
uint8_t RucneCisloSekce = 9;
uint8_t CisloSekce = 10;
RucneCisloSekce++;
CisloSekce++;
if (RucneCisloSekce == (CisloSekce - 1u)) {
NOP();
}
Takze ako som uz pisal, treba tam doplnit v podmienke
if (RucneCisloSekce == ((CisloSekce - 1u) & 0x00FF) )
a potom sa to zacne tvarit ako uint8 premenne a teda sa zacne na
podmienku pozerat Vasimi ocami, tak ako ste chcel.
Bez toho & 0x00FF automaticky rozsiri obidve premenne na typ int a
prevedie odcitanie int 1 a urobi porovnanie dvoch int. Da sa to
dohladat v listingu. Namiesto cca. piatich instrukcii je tych
instrukcii vela... To je to C99.
A.
_______________________________________________
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