5.2 Der Datentyp »int« (Integer) 

Der Datentyp int muss, gemäß ANSI C, mindestens eine Größe von zwei Byte aufweisen. Mit diesen zwei Bytes lässt sich ein Zahlenraum von -32768 bis +32767 beschreiben. Mit dem Datentyp int lassen sich nur Ganzzahlen darstellen. Die Abkürzung int steht für Integer.
Hier kommen Sie auch gleich mit betriebssystemspezifischen Eigenheiten in Berührung. Auf 16-Bit-Systemen mag das eben Gesagte zutreffen. Dort ist ein Integer (int) auch wirklich zwei Bytes groß. Manch einer wird aber sagen: 16-Bit-Systeme sind doch Schnee von gestern und eigentlich nur noch für MS-DOS- und Windows-3.1-Compiler relevant. Denken Sie aber daran, dass es noch andere Programmierplattformen neben Linux und MS Windows gibt (besonders wären hier die Embedded Systems und Mikrocontroller hervorzuheben), wo C seine Stärken ausspielen kann!
Linux, Windows (ab Windows 95) und Macintosh sind alles schon Betriebssysteme auf 32-Bit-Basis. 32 Bit entsprechen vier Byte. Somit erstreckt sich der Zahlenraum auf 32-Bit-Systemen von -2147483648 bis +2147483647.
Ein int hat somit laut Standard die natürliche Größe, die von der »Ausführ-Umgebung« vorgeschlagen wird. Das wären dann z. B. auf einer PDP10-Maschine 36 Bit, auf einem Pentium 4 32 Bit und auf einem beliebigen 64-Bit-Prozessor-System eben 64 Bit.
Tabelle 5.1 gibt einen kurzen Überblick über den Datentyp int und seinen möglichen Wertebereich auf den verschiedenen Systemen:
System | Name | Größe | Wertebereich | Formatzeichen |
ANSI C |
int |
2 Byte |
–32768 +32767 |
%d oder %i |
IBM PC MS-DOS und Win3.1 |
int |
2 Byte |
–32768 +32767 |
|
Macintosh Metrowerks CW |
int |
4 Byte |
–2147483648 +2147483647 |
|
Win98/2000/NT/XP/Vista |
int |
4 Byte |
–2147483648 +2147483647 |
|
Linux |
int |
4 Byte |
–2147483648 +2147483647 |
%d oder %i |
64-Bit-Architektur |
Sicherlich stellen Sie sich jetzt die Frage, was ist dann mit der neuen 64-Bit-Architektur? Theoretisch hätte hier int ja eine Wortbreite von 64 Bit. Auch die Zeiger (siehe Kapitel 12) hängen entscheidend von der Wortbreite ab. Daher hat man beim Übergang von der 32-Bit- zur 64-Bit-Architektur Zeiger und den Typ long auf 64 Bit verbreitert und int weiterhin auf 32 Bit belassen. Dies wird kurz auch mit LP64 abgekürzt. |
Wenn Sie prüfen wollen, welchen Wertebereich der Datentyp int auf einem System hat, so können Sie ihn mit folgendem Listing herausfinden:
/* sizeof_int.c */ #include <stdio.h> #include <limits.h> /* INT_MIN und INT_MAX */ int main(void) { printf("int Größe : %d Byte\n", sizeof( int ) ); printf("Wertebereich von %d bis %d\n", INT_MIN, INT_MAX); return 0; }
Die Konstanten INT_MIN und INT_MAX sind in der Headerdatei <limits.h> mit den Werten deklariert, die der Datentyp int auf Ihrem System besitzt.