Forum: Compiler & IDEs Doofe Frage: Minima/Maxima von Datentypen bei Vergleich


von Jens Langecker (Gast)


Lesenswert?

Hallo zusammen,
eine wahrscheinlich doofe Frage:
1
int16_t a,b,c,d;
2
a = -32768;
3
b = -32768;
4
c = 32767;
5
d = 32767;
6
if (a < b) {...}
7
if (c > d) {...}
Gibt es Stolpersteine, wenn ich Vergleiche an den Grenzen eines 
Datentyps durchführe?

von Klaus W. (mfgkw)


Lesenswert?

Prinzipiell kannst du das so machen wie oben beschrieben, solange du 
innerhalb der Grenzen bleibst.

Wobei natürlich dann an der Grenze wirklich Schluß ist.
Beispiel:
1
   int16_t    a = ...;
2
   int16_t    b = 32767;
3
   if( a>b ) ... // wird niemals wahr sein

von Klaus W. (mfgkw)


Lesenswert?

PS: es gibt auch standardisierte Konstanten für die Grenzen jeden 
Datentyps.

von Jens Langecker (Gast)


Lesenswert?

Klaus Wachtler schrieb:
> PS: es gibt auch standardisierte Konstanten für die Grenzen jeden
> Datentyps.

Es geht konkret um den Fall, dass zwei Variablen verglichen werden, 
deren Wert erst zur Laufzeit berechnet wird.

von Klaus W. (mfgkw)


Lesenswert?

Wenn sie denselben Typ haben, geht es wie erwartet.
Nur bei signed gegen unsigned etc. muß man etwas mehr Nachdenken im 
Einzelfall.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.