Heim >Backend-Entwicklung >C++ >Wie schreibt man kurze Literale in C?

Wie schreibt man kurze Literale in C?

DDD
DDDOriginal
2024-10-31 00:29:03688Durchsuche

How Do You Write Short Literals in C  ?

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:

  1. Wandeln Sie eine Ganzzahl in um short: Schließen Sie ein ganzzahliges Literal in Klammern ein und wandeln Sie es in short um. Zum Beispiel: (kurz)2

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn