ein Kapitel zurück                                           ein Kapitel weiter

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 zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf