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