Ich habe ein Problem herauszufinden, warum die Ausgabe in jedem dieser besonderen Fälle unterschiedlich ist. In dem Beispielcode ein, gibt es eine variable Förderung, wie ich erwarte, und das Ergebnis es > 6
ist, aber in dem Beispielcode b, ist das Ergebnis <= 6
:Variable Förderung in C
/* **Code a** */
puts("Code a\n");
unsigned int a = 6;
int b = -20;
(a+b > 6) ? puts("> 6\n") : puts("<= 6\n");
/* **Code b** */
puts("Code b:\n");
uint8_t a1 = 6;
int8_t b1 = -20;
(a1+b1 > 6) ? puts("> 6\n") : puts("<= 6\n");
Ausgang:
Code a
> 6
Code b:
<= 6
Werfen Sie einen Blick auf: [In einem C-Ausdruck, in dem unsigned int und signed int vorhanden sind, welcher Typ wird zu welchem Typ hochgestuft?] (Http://stackoverflow.com/questions/2280663/in-ac-expression -where-unsigned-int-and-signed-int-sind-Präsens-welcher-Typ wird) Ich hoffe, dass dir das weiterhilft. – Missu
Ein Bild für Textausgabe bereitstellen? Das wird automatisch geladen, wenn einige diese Frage öffnen? Haben Sie einen Tracker dahinter?) Bitte verwenden Sie in solchen Fällen nur Ausschneiden und Einfügen. –
Ein schönes Beispiel für einen einfachen, aber wohlgeformten Post: Klare Überschrift, klare Schwierigkeitsangabe, Beispielcode, Ausgabe, erwartete Ausgabe, gute Tags. – chux