Integer-Literale: Standardmäßig nicht immer Int
Während der Iteration in einer Schleife können übermäßig große Integer-Literale zu unerwarteten Problemen führen. Normalerweise werden Literale ohne Suffixe als int interpretiert. Diese Annahme gilt jedoch möglicherweise nicht für sehr große Werte.
Überlauf und Heraufstufung
Wenn ein ganzzahliges Literal den Bereich von int (normalerweise 32-Bit) überschreitet, undefiniert Verhalten (UB) kann die Folge sein. In einigen Fällen kann der Compiler das Literal jedoch automatisch in einen größeren Typ hochstufen, z. B. long int (normalerweise 64-Bit).
Standardspezifikationen
Sowohl C- als auch C-Standards regeln die Heraufstufung von Ganzzahlliteralen in geeignete Typen.
Beispiel
Betrachten Sie das ganzzahlige Literal 10000000000. In einer C-Umgebung würde dies als long int interpretiert werden. Wenn es sich beim verwendeten Compiler jedoch um einen 32-Bit-Compiler handelt, kann dies zu einem Kompilierungsfehler führen, da das Literal für die verfügbaren Integer-Typen zu groß ist.
Das obige ist der detaillierte Inhalt vonWarum werden übermäßig große Ganzzahlliterale in C und C manchmal nicht standardmäßig auf „int' gesetzt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!