Was ist Integer-Promotion?

Regel in C, nach der Werte von Ganzzahltypen, die kleiner als int sind (char, short, Bitfelder usw.), vor einer Operation in int umgewandelt werden (bzw. in unsigned int, wenn int den Wert nicht darstellen kann). Deshalb wird auch eine Addition zweier 8-Bit-Werte vom Typ uint8_t mit der Breite von int berechnet, und das Ergebnis von ~ hat auch in den oberen Bits Einsen. Bei der Zuweisung des Ergebnisses an eine Variable eines kleineren Typs wird es auf dessen Breite zurückgeführt. Zusammen mit den „üblichen arithmetischen Konvertierungen“, die bei Operationen mit vorzeichenbehafteten und vorzeichenlosen Werten die Typen angleichen, beeinflusst sie die Ergebnisse von Vergleichen und Bitoperationen.

Japanische Bezeichnung: 整数拡張

„Integer-Promotion“ kommt in 2 Übungsfragen aus 1 Themen vor, z. B. Grundlagen der Programmiersprache C.

Fachgebiet: Grundlagen der Programmiersprache C

„Integer-Promotion“ in den Erläuterungen

Fragen mit „Integer-Promotion“ (2)

  1. unsigned char habe 8 Bit und int 32 Bit. Welche Ausgabe erzeugt der obige Code bei der Ausführung?
  2. uint8_t sei ein vorzeichenloser 8-Bit-Ganzzahltyp und int habe 32 Bit. Was ergibt die Ausführung des obigen Codes?

Verwandte Begriffe

Mikrocontroller Ausrichtung und Auffüllung (Alignment und Padding) Bitfeld Dangling Pointer (hängender Zeiger) Dynamische Speicherreservierung Funktionszeiger Makro Präprozessor Pufferüberlauf (Buffer Overflow) Speicherleck (Memory Leak)

Zur Glossarübersicht