C Fehler: Vergleich von Const mit bool immer falsch

Gast #4967201
Lesenswert?

Ich habe hier einen kleinen Denkfehler oder irgendwas passt nicht:

1
#define SSD1306_LCDWIDTH    128
2
#define SSD1306_LCDHEIGHT   64
3

4
//...
5

6

7
void drawRect(uint8_t px1, uint8_t py1, uint8_t px2, uint8_t py2)
8
{
9
    if( ((px1 || px2) > SSD1306_LCDWIDTH-1) ||
10
        ((py1 || py2) > SSD1306_LCDHEIGHT-1) ) return;
11
//....
12
}

Wirft mir immer folgende Warnung aus:
1
warning: comparison of constant '127' with boolean expression is always false [-Wbool-compare]

Woran kann das liegen? Auch wenn ich die Werte direkt eintrage kommt 
diese Warnung.
Gast #4967214
Lesenswert?

(px1 || px2) liefert nur true oder false.
Wenn px1 0 ist und px2 0 ist kommt false raus ansonsten kommt immer 
true.
Versuch mal
[c]
void drawRect(uint8_t px1, uint8_t py1, uint8_t px2, uint8_t py2)
{
    if( (px1 > SSD1306_LCDWIDTH-1) ||
         (px2 > SSD1306_LCDWIDTH-1) ||
         (py1 > SSD1306_LCDHEIGHT-1)||
         (py2 > SSD1306_LCDHEIGHT-1) ) return;
//....
}
[\c]

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren