Kurze Literale in C schreiben
In C werden mehrere Literalnotationen verwendet, um verschiedene Datentypen darzustellen, z. B. 2 für int, 2L für long und „2“ für char. Es ist jedoch möglicherweise unklar, wie man kurze Literale schreibt, die 16-Bit-Ganzzahlen speichern.
Das Problem wird deutlich, wenn versucht wird, 2S als kurzes Literal zu verwenden. Obwohl diese Notation logisch erscheinen mag, führt sie zu einer Compiler-Warnung. Die Lösung liegt in der Verwendung einer Umwandlung, um eine Ganzzahl explizit in eine kurze Zahl umzuwandeln.
Um ein kurzes Literal in C zu schreiben, befolgen Sie diese Schritte:
Dieser Ansatz ist nicht unbedingt ein kurzes Literal, verhält sich aber ähnlich. C bietet keine direkte Möglichkeit, kurze Literale darzustellen.
Trotzdem optimiert der Compiler den Code so, dass er Speicher für ein kurzes statt für ein int reserviert. Hier ist ein Beispiel, das dieses Verhalten demonstriert:
<code class="cpp">int a = 2L; double b = 2.0; short c = (short)2; char d = '';</code>
Beim Kompilieren und Disassemblieren zeigt der generierte Assemblercode, dass allen Variablen Speicher zugewiesen wird, als ob sie vom richtigen Typ wären:
movl , _a movl , _b movl , _c movl , _d
Daher müssen Sie sich bei der Arbeit mit kurzen Literalen in C keine Gedanken über die Ineffizienz des Castings machen.
Das obige ist der detaillierte Inhalt vonWie schreibt man kurze Literale in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!