Maison >développement back-end >C++ >Comment implémenter des littéraux courts en C ?

Comment implémenter des littéraux courts en C ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-30 11:01:02919parcourir

How to Implement Short Literals in C  ?

Conversion d'entiers en littéraux courts en C

En C, l'écriture de littéraux entiers dans des formats spécifiques indique leurs types de données. Cependant, écrire un littéral court peut sembler déroutant.

Question : Implémentation de littéraux courts

Comment un littéral court peut-il être écrit en C ? Les connaissances existantes comprennent :

  • 2 : int
  • 2U : int non signé
  • 2L : long
  • 2LL : long long
  • 2.0f : float
  • 2.0 : double
  • '2' : char

Réponse : lancer un entier

Bien qu'il n'y ait pas de format littéral court direct, la conversion d'un entier en short fournit le comportement souhaité :

<code class="cpp">((short)2)</code>

Comportement du casting

Bien qu'il ne s'agisse pas d'un format littéral , le casting garantit un comportement similaire en forçant l'entier à un court sans allouer explicitement de mémoire supplémentaire ni effectuer de conversions inutiles.

Exemple de désassemblage

Considérez le code suivant :

<code class="cpp">a = 2L;
b = 2.0;
c = (short)2;
d = '';</code>

La compilation et le désassemblage de ce code entraînent :

movl    , _a
movl    , _b
movl    , _c
movl    , _d

Cela démontre que le compilateur optimise le code et en stocke 2 dans toutes les variables, quels que soient leurs types déclarés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn