Literale Darstellung des kurzen Datentyps in C
In C gibt es verschiedene literale Darstellungen für verschiedene Datentypen, einschließlich int, unsigned int, long, float, double und char. Allerdings scheint es eine Frage bezüglich der wörtlichen Darstellung des kurzen Datentyps zu geben.
Die Frage ergibt sich aus dem Fehlen einer expliziten kurzen wörtlichen Syntax. Analog zu anderen Datentypen führen Versuche wie „2S“ zu Compiler-Warnungen. Die in der Antwort bereitgestellte Lösung besteht darin, Casting zu verwenden.
Um ein kurzes Literal darzustellen, kann man die Syntax (kurz)2 verwenden. Obwohl es sich nicht unbedingt um ein kurzes Literal handelt, erzielt diese Besetzung das gleiche Verhalten. Der Compiler leitet den Kontext ab und optimiert den Code effizient, wodurch unnötige Int-Zuweisungen und -Umwandlungen vermieden werden.
Zur Verdeutlichung untersuchen wir die Assembly-Ausgabe des folgenden Codeausschnitts:
<code class="cpp">a = 2L; b = 2.0; c = (short)2; d = '';</code>
Die Disassembler-Ausgabe zeigt, dass alle mit Literalen (2L, 2.0, (kurz)2, '2') zugewiesenen Variablen mithilfe der movl-Anweisung mit dem Wert 2 initialisiert werden. Dieses Verhalten zeigt, dass der Compiler die Umwandlung effektiv durchführt und den Code unabhängig davon optimiert wörtliche Darstellung.
Das obige ist der detaillierte Inhalt vonWie stellt man ein kurzes Literal in C dar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!