Long Long in C/C verstehen
In C und C stellt der Datentyp „long long“ eine vorzeichenbehaftete Ganzzahl mit 64 Bits dar der Präzision. Dadurch können extrem große oder kleine Zahlen dargestellt werden, die von standardmäßigen Ganzzahltypen wie „int“ oder „long“ nicht berücksichtigt werden können.
Im bereitgestellten Codeausschnitt wurden mehrere Fragen zum Verhalten von „long“ aufgeworfen long‘-Variablen:
Größe von „long long“:
Der Operator „sizeof“ gibt die Größe einer Variablen oder eines Datentyps in Bytes zurück. Da „num3“ mit keinem Wert initialisiert wird, bleibt es nicht initialisiert und seine Größe ist undefiniert, was zu 0 führt. Um dies zu beheben, initialisieren Sie „num3“ explizit mit einem „long long“-Wert.
Integer-Überlauf:
C behandelt den Integer-Überlauf stillschweigend. Wenn der einer Variablen zugewiesene Wert ihre Kapazität überschreitet, erfolgt ein Umlauf und die Zählung beginnt beim niedrigsten Wert. In diesem Fall führt die Zuweisung von 10000000000 zu einer „langen“ Variablen zu einem Überlauf und das Ergebnis ist ein negativer Wert. Da „num2“ jedoch ein „long long“ ist, kann es den großen Wert ohne Überlauf aufnehmen.
Literale Ganzzahlkonstanten:
In C und C ganzzahlig Konstanten sind stark typisiert. Das Zuweisen einer literalen Ganzzahlkonstante, die die Grenzen des Zieldatentyps überschreitet, führt zu einem Kompilierungsfehler. In diesem Beispiel überschreitet die Konstante 100000000000 den Bereich von „long“, und das Hinzufügen von „LL“ gibt explizit an, dass sie als „long long“-Konstante behandelt werden soll.
Das obige ist der detaillierte Inhalt vonWarum verhält sich „long long' in C/C anders als „int' oder „long'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!