Wat is Integerpromotie (integer promotion)?

De regel in C die waarden van integertypen die kleiner zijn dan int (char, short, bitvelden enzovoort) vóór een bewerking omzet naar int (of naar unsigned int als int ze niet kan weergeven). Daardoor wordt zelfs de som van twee 8-bits waarden van het type uint8_t met de breedte van int berekend, en heeft het resultaat van ~ ook in de bovenste bits enen. Bij toekenning van het resultaat aan een variabele van een kleiner type keert de waarde terug naar de smallere breedte. Samen met de „gebruikelijke rekenkundige conversies”, die de typen gelijktrekken bij bewerkingen die operanden met en zonder teken mengen, beïnvloedt ze de resultaten van vergelijkingen en bitsgewijze bewerkingen.

Japanse benaming: 整数拡張

“Integerpromotie (integer promotion)” komt voor in 2 oefenvragen uit 1 onderwerpen, bijv. Basis van programmeren in C.

Vakgebied: Basis van programmeren in C

“Integerpromotie (integer promotion)” in de toelichting

Vragen met “Integerpromotie (integer promotion)” (2)

  1. unsigned char is 8 bits en int is 32 bits. Wat is de uitvoer als de bovenstaande code wordt uitgevoerd?
  2. uint8_t is een 8-bits integertype zonder teken en int is 32 bits. Wat is het resultaat als de bovenstaande code wordt uitgevoerd?

Verwante termen

Microcontroller (MCU) Bitveld (bit-field) Bufferoverloop (buffer overflow) Dangling pointer Dynamische geheugentoewijzing Functiepointer Geheugenlek (memory leak) Macro (#define) Ongedefinieerd gedrag (undefined behavior) Pointer

Naar de woordenlijst