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

Comment écrire des littéraux courts en C ?

DDD
DDDoriginal
2024-10-31 00:29:03741parcourir

How Do You Write Short Literals in C  ?

Écrire des littéraux courts en C

En C , plusieurs notations littérales sont utilisées pour représenter différents types de données, telles que 2 pour int, 2L pour long, et '2' pour char. Cependant, il peut ne pas être clair comment écrire des littéraux courts, qui stockent des entiers de 16 bits.

Le problème devient évident lorsque l'on essaie d'utiliser 2S comme littéral court. Bien que cette notation puisse sembler logique, elle entraîne un avertissement du compilateur. La solution réside dans l'utilisation d'un transtypage pour convertir explicitement un entier en un nombre court.

Pour écrire un littéral court en C , suivez ces étapes :

  1. Convertissez un entier en short : Mettez un littéral entier entre parenthèses et convertissez-le en court. Par exemple : (short)2

Cette approche n'est pas strictement un littéral court, mais elle se comporte de la même manière. C n'offre pas de moyen direct de représenter des littéraux courts.

Malgré cela, le compilateur optimise le code de telle sorte qu'il alloue de la mémoire pour un short plutôt que pour un int. Voici un exemple qui illustre ce comportement :

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

Lorsqu'il est compilé et désassemblé, le code assembleur généré révèle que toutes les variables se voient allouer de la mémoire comme si elles étaient des types corrects :

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

Par conséquent, vous n'avez pas à vous soucier de l'inefficacité du casting lorsque vous travaillez avec des littéraux courts en C .

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