64-Bit-Ganzzahlliterale in standardmäßigen Int-Kontexten
In der Programmierung stellen Ganzzahlliterale ganze Zahlen dar. Typischerweise werden diese Literale dem standardmäßigen Integer-Datentyp zugewiesen, der normalerweise 32 Bit breit ist. Bestimmte Umstände können jedoch dazu führen, dass standardmäßig größere Ganzzahlliterale erstellt werden.
Ein solcher Fall ist, wenn das Ganzzahlliteral den Bereich des Standard-Ganzzahltyps überschreitet. Beispielsweise haben in C und C Literale ohne angehängtes „L“ einen Typ, der ihren Wert darstellen kann. Wenn der Wert für einen int-Typ zu groß ist, wird er zu einem long int- oder long long int-Typ heraufgestuft.
Diese Heraufstufung behebt das Überlaufproblem, das andernfalls auftreten würde, wenn das Literal als 32-er umgewandelt würde. Bit-Ganzzahl. Der C 11-Standard spezifiziert dieses Verhalten in [lex.icon] ¶2 und gibt an, dass der Typ des Literals der erste in der gegebenen Liste sein wird, in dem der Wert dargestellt werden kann:
int long int long long int
In ähnlicher Weise definiert C99 dies Beförderungsmechanismus in §6.4.4.1. Dadurch wird sichergestellt, dass ein Integer-Literal, selbst wenn es den standardmäßigen Integer-Bereich überschreitet, implizit in einen größeren Typ konvertiert wird, sodass es korrekt dargestellt werden kann.
In seltenen Fällen kann das Integer-Literal immer noch zu groß sein die verfügbaren Integer-Typen. In diesem Fall erfordern sowohl C99 als auch C 11 einen Kompilierungsfehler, der darauf hinweist, dass das Literal durch keinen unterstützten Typ dargestellt werden kann. Dies verhindert Laufzeitprobleme, die durch einen Ganzzahlüberlauf verursacht werden.
Das obige ist der detaillierte Inhalt vonWann werden Integer-Literale 64-Bit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!