Quand utiliser l’apostrophe et les guillemets doubles dans la programmation en C ?
Réponses
Trop de publicités?En C et en C++ apostrophes identifient un caractère unique, tandis que les guillemets doubles créer une chaîne littérale. « a » est un seul caractère littéral, alors que « a » correspond à un littéral de chaîne contenant un « a » et une marque de fin null (c’est un tableau de 2 char).
Notez que, dans C, le type d’un littéral de caractère est et non
, c'est-à-dire est 4 dans une architecture où ints sont 32 bits (et CHAR_BIT est 8), tandis que
est à 1 partout.
Certains compilateurs également de mettre en œuvre une extension, qui permet de caractères multi-constantes. Le standard C99 dit:
6.4.4.4p10: "La valeur d'un entier constante de caractère contenant plus que d'un caractère (par exemple, "ab"), ou contenant un caractère ou d'échapper à des la séquence ne correspond pas à une un seul octet d'exécution de caractère, est la mise en œuvre définies."
Cela pourrait ressembler à ceci, par exemple:
const uint32_t png_ihdr = 'IHDR';
Le résultant constante (dans GCC, qui met en œuvre ce) a la valeur que vous obtenez en prenant chaque personnage et de les déplacer, de sorte que " je " termine dans les bits les plus significatifs de la valeur de 32 bits. Évidemment, vous ne devriez pas compter sur cette plate-forme indépendante de code.