Basis van programmeren in C

Wat legt de C-standaard vast over de grootte van het type int?

  1. ADie is in elke implementatie vastgelegd op 32 bits
  2. BAlleen dat die minstens 16 bits is, ligt vast; de werkelijke grootte bepaalt de implementatie
  3. CDie is vastgelegd als gelijk aan de breedte van de adressen van de CPU, dus op een 64-bits CPU is die 64 bits
Antwoord en toelichting tonen

Antwoord: B. Alleen dat die minstens 16 bits is, ligt vast; de werkelijke grootte bepaalt de implementatie

De C-standaard eist alleen dat int minstens −32767 tot 32767 kan weergeven (dus 16 bits of meer); de werkelijke grootte bepaalt de implementatie (de combinatie van compiler en doel-CPU). Bij compilers voor een 16-bits microcontroller kan int 16 bits zijn, terwijl het op de meeste pc's en 32-bits microcontrollers 32 bits is. Ook op 64-bits Linux en Windows blijft int in het algemeen 32 bits, en wordt een pointer 64 bits. Als een geheel getal van een vaste grootte nodig is, worden int32_t en vergelijkbare typen uit stdint.h gebruikt.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren in C

  1. In embedded programma's wordt een variabele die de waarde van een 32-bits randapparaatregister bevat, vaak gedeclareerd met uint32_t uit stdint.h in plaats van unsigned int. Wat is de belangrijkste reden?
  2. Wat is de uitvoer als de bovenstaande code, die een deling van gehele getallen bevat, wordt uitgevoerd?
  3. Wat is de uitvoer als de bovenstaande code met prefix- en postfix-++ wordt uitgevoerd?
  4. Wat is de uitvoer als de bovenstaande code, met = in de voorwaarde van een if-statement, wordt uitgevoerd?
  5. De bovenstaande code is geschreven om te controleren of bit 2 van de registerwaarde reg 1 is. Wat is het resultaat als de code wordt uitgevoerd?