In C oder C++ gibt es vier verschiedene Datentypen für Ganzzahldaten. Die vier Datentypen sind short, int, long und long long. Jeder Datentyp belegt unterschiedlichen Speicherplatz. Die Größe variiert je nach Architektur und Betriebssystem. Manchmal benötigt ein int 4 Bytes, manchmal 2 Bytes. Dies passiert auch bei Compilern. Wir können also Cross-Compiler verwenden.
Ein Cross-Compiler ist im Grunde ein Compiler, der für andere Plattformen als die aktuelle Plattform kompilieren kann.
Wenn wir also den folgenden Code im 32-Bit-System und im 64-Bit-System kompilieren möchten, erzeugt er unterschiedliche Ausgaben.
#include<stdio.h> int main() { printf("Size of int : %ld Bytes</p><p>", sizeof(int)); printf("Size of long : %ld Bytes</p><p>", sizeof(long)); printf("Size of long long : %ld Bytes", sizeof(long long)); }
Size of int : 4 Bytes Size of long : 4 Bytes Size of long long : 8 Bytes
Anhand dieses Beispiels können wir also leicht verstehen, dass der Typ langer Daten von Compiler zu Compiler unterschiedlich ist. Was ist also der Grund dafür?
Die CPU ruft Daten im Hauptspeicher (RAM) auf, indem sie die Adresse des Memory Address Register (MAR) bereitstellt. Sobald der Standort gefunden wurde, wird er in das Memory Buffer Register (MBR) übertragen. Die Daten werden zur weiteren Verwendung in CPU-Registern gespeichert. Die Größe des Datenbusses bestimmt also die Größe der CPU-Register. Bei 32-Bit-Systemen können jeweils nur 4 Byte Daten aufgerufen werden. Wenn die Daten größer als 32 Bit sind, sind zwei Zyklen erforderlich. Bei kleineren Daten gibt es also keinen Unterschied.
Das obige ist der detaillierte Inhalt vonIn der C-Sprache ist der Datentyp „Long Integer' erforderlich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!