Heim > Artikel > Backend-Entwicklung > Wird die Größe des Operators in C zur Kompilierungszeit oder zur Laufzeit ausgewertet?
Hängt die Auswertungszeit des Operators „sizeof“ in C von der Maschine ab?
Der Operator „sizeof“ in C berechnet die Größe eines Datentyps oder Variable, aber hängt das Ergebnis von der Maschine ab, auf der der Code kompiliert oder die ausführbare Datei ausgeführt wird?
Auswertungszeit von sizeof
Die Antwort darauf Frage ist nein. Im Gegensatz zu einigen anderen Operatoren erfolgt die Auswertung von sizeof zur Kompilierungszeit. Das bedeutet, dass der Compiler die Größe des Datentyps oder der Variablen bestimmt, wenn das Programm kompiliert wird, nicht wenn es ausgeführt wird.
Betrachten Sie beispielsweise den folgenden Codeausschnitt:
<code class="cpp">sizeof(short int)</code>
Das Ergebnis dieses Code-Snippets ist dasselbe, unabhängig davon, auf welchem Computer es kompiliert oder die ausführbare Datei ausgeführt wird. Dies liegt daran, dass der Compiler während der Kompilierung die Größe des Datentyps short int bestimmt, die normalerweise 2 Byte beträgt. Die ausführbare Datei enthält lediglich diese Informationen, und die tatsächliche Größe von short int auf dem Computer, auf dem das Programm ausgeführt wird, hat keinen Einfluss auf das Ergebnis.
Daher wird die Auswertungszeit des sizeof-Operators in C bestimmt Kompilierzeit, nicht zur Laufzeit.
Das obige ist der detaillierte Inhalt vonWird die Größe des Operators in C zur Kompilierungszeit oder zur Laufzeit ausgewertet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!