É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 :
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!