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.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.