7.4 Der Datentyp long
 
Der Datentyp long entspricht wie der Datentyp int auch einer Ganzzahlvariablen. Bei 16-Bit-Systemen hat dieser Typ einen größeren Zahlenbereich und verbraucht somit auch mehr Speicherplatz als der Datentyp int. Hier ein Vergleich mit dem Datentyp int auf einem 16-Bit-System:
Tabelle 7.2
Der Datentyp long im Vergleich mit int (16-Bit-Systemen)
Name
|
Größe
|
Wertebereich
|
Formatzeichen
|
int
|
2 Byte
|
–32768
+32767
|
%d oder %i
|
long
|
4 Byte
|
–2147483648
+2147483647
|
%ld oder %li
|
Den Datentyp long können Sie benutzen, wenn Berechnungen mit größeren Zahlen durchführt werden. Das Formatzeichen ist hier %ld oder %li, von »long dezimal« bzw. »long integer«. long ist also nichts anderes als ein größeres int, und genauso kann es auch benutzt werden. Mit dem Datentyp long kann der Datentyp int auf 16-Bit-Systemen modifiziert werden, sodass der Wertebereich von int vergrößert wird:
long int a;
Jetzt stellt sich die Frage, welche Daseinsberechtigung hat der Datentyp long dann eigentlich noch auf 32-Bit-Systemen? long hat ja auf diesen Systemen dieselbe Größe und denselben Wertebereich wie der Datentyp int.
Die Antwort könnte lauten: aus Kompatibilitätsgründen. Damit alte Programme, die für 16-Bit-Rechner geschrieben wurden, auch noch auf einem 32-Bit-Rechner laufen bzw. übersetzt werden können. Das gilt auch für den umgekehrten Fall. Dies sollten Sie beachten, wenn Sie ein Programm für ein 32-Bit-System geschrieben haben und es dann auf ein 16-Bit-System portierten wollen. In diesem Fall ist es empfehlenswert, den Datentypen long zu verwenden. Sollte bei einem Programm auf dem 16-Bit-Rechner eine Zahl, z.B. »1000000«, vorkommen, und es wurde der Datentyp int verwendet, wird das Programm mit falschen Werten rechnen und möglicherweise völlig unvorhergesehene Reaktionen zeigen.
Hinweis Es ist anzumerken, dass long auf 32-bit CPUs nicht unbedingt 32–bit groß sein muss, u.U. ist long auf 64-bit Plattformen genauso groß wie ein int, also 64-bit.
|
Hinweis Neu (C99-Standard) ist der erweiterte long-Datentyp. long long ist ein 64 Bit (8 Byte) breiter Datentyp, der einen Wertebereich von –9.223.372.036.854.755.807 bis +9.223.372.036.854.755.807 darstellen kann.
|
|