|
![ein Kapitel weiter](../weiter.gif)
Der Variablentyp 'long' ist wie der Typ 'int' auch eine Ganzzahlvariable. Bei 16Bit-Systemen hat dieser Typ einen höheren Zahlenbereich und verbraucht somit auch mehr Speicherplatz als der Variablentyp 'int'. Hier ein Vergleich mit int auf einem 16Bit-System...
Name |
Größe |
Wertebereich |
Formatzeichen |
int |
2 Bytes |
-32768...+32767 |
%d oder %i |
long |
4 Bytes |
-2147483648..+2147483647 |
%ld oder %li |
Den Variablentyp 'long' können sie also benutzen wenn sie eine Berechnung mit höheren Zahlen benötigen. Das Formatzeichen ist hier '%ld' oder '%li' was nichts anderes heißt wie long dezimal oder eben long int. 'long' ist also nichts anderes als ein
größeres 'int' und genauso können sie es auch benutzen.
Mit dem Datentyp long können sie den Datentypen int auf 16Bit-Systemen
modifizieren. Damit kann der Wertebereich eines int vergrößert werden...
long int a;
Nun stellt sich die Frage, welche Daseinsberechtigung hat der Datentyp
long eigentlich noch auf 32Bit-Systemen. Da der Datentyp long
ja auf diesen System die selbe Größe und den selben Wertebereich aufweist
wie der Datentyp int.
Die Antwort könnte eigentlich lauten, aus kompatibilitätsgründen.
Damit alte Programme die für 16Bit-Rechner geschrieben wurden auch noch
auf einem 32Bit-Rechner laufen. Und umgekehrt logischerweise.
Bedenken sie dies, wenn sie ein Programm für ein 32Bit-System schreiben
und dies auf ein 16Bit-System portieren müssen. In diesem Fall rate ich
Ihnen den Datentypen long zu verwenden. Den sollte bei Ihrem Programm
auf dem 16Bit-Rechner eine Zahl, z.B. 1000000, vorkommen und sie den Datentyp int verwenden, werden sie falsche bis undefinierbare Ergebnisse zurück bekommen.
Neu auf vielen System dürfte der erweiterte long Datentyp sein.
(long long)
long long ist ein 64Bit (8Byte) breiter Datentyp der einen Wertebereich
von -9.223.372.036.854.755.807 bis -9.223.372.036.854.755.807 darstellen kann.
Ob dies auch auf Ihrem System funkioniert können sie mit folgendem Programm testen...
/*Download:llong.c*/
#include <stdio.h>
int main() {
long long i=100; printf("Größe : %ld Bytes\n",sizeof(long long)); return 0; }
|
Die Frage zu long long dürfte wohl lauten, wer braucht überhaupt so eine Astronomische Zahl?
![ein Kapitel weiter](../weiter.gif)
© 2001,2002 Jürgen Wolf
|