Basis van programmeren in C
uint8_t x = 250;
for (int i = 0; i < 10; i++)
x++;
printf("%d\n", x);uint8_t is een 8-bits integertype zonder teken. Wat is de uitvoer als de bovenstaande code, die x tien keer verhoogt, wordt uitgevoerd?
- A4
- B255
- C260
Antwoord en toelichting tonen
Antwoord: A. 4
uint8_t kan 0 tot 255 weergeven. De standaard legt vast dat een waarde die niet in een integertype zonder teken past, de rest bij deling door 2⁸ = 256 wordt, dus bij optellen met 1 vanaf 250 komt na 255 weer 0. Na 10 verhogingen is het resultaat de rest van 250 + 10 = 260 bij deling door 256, dus 4. Daarentegen is overloop bij rekenen met integertypen met teken ongedefinieerd gedrag.