Grundlagen der Programmiersprache C

Was legt der C-Standard über die Größe des Typs int fest?

  1. ASie ist in jeder Implementierung auf 32 Bit festgelegt
  2. BFestgelegt ist nur, dass sie mindestens 16 Bit beträgt; die tatsächliche Größe bestimmt die Implementierung
  3. CSie ist gleich der Adressbreite der CPU festgelegt und beträgt daher auf einer 64-Bit-CPU 64 Bit
Antwort und Erläuterung anzeigen

Antwort: B. Festgelegt ist nur, dass sie mindestens 16 Bit beträgt; die tatsächliche Größe bestimmt die Implementierung

Der C-Standard verlangt nur, dass int mindestens den Bereich −32767 bis 32767 darstellen kann (also mindestens 16 Bit hat); die tatsächliche Größe bestimmt die Implementierung (die Kombination aus Compiler und Ziel-CPU). Bei Compilern für 16-Bit-Mikrocontroller kann int 16 Bit groß sein, auf den meisten PCs und 32-Bit-Mikrocontrollern sind es 32 Bit. Auch unter 64-Bit-Linux und -Windows bleibt int im Allgemeinen bei 32 Bit, während ein Zeiger 64 Bit groß wird. Wird eine Ganzzahl fester Größe benötigt, verwendet man int32_t und ähnliche Typen aus stdint.h.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmiersprache C

  1. In Embedded-Programmen wird eine Variable für den Wert eines 32-Bit-Peripherieregisters oft nicht als unsigned int, sondern als uint32_t aus stdint.h deklariert. Was ist der Hauptgrund dafür?
  2. Welche Ausgabe erzeugt der obige Code mit einer Division zweier Ganzzahlen bei der Ausführung?
  3. Welche Ausgabe erzeugt der obige Code mit Präfix- und Postfix-++ bei der Ausführung?
  4. Welche Ausgabe erzeugt der obige Code, in dessen if-Bedingung = steht, bei der Ausführung?
  5. Der obige Code soll prüfen, ob Bit 2 des Registerwerts reg gleich 1 ist. Was ergibt die Ausführung?