Constantes à caractères étendus et à caractères multiples

De RAD Studio
Aller à : navigation, rechercher

Remonter à Présentation des constantes caractère - Index


Littéraux caractère étendu

Les types de caractères étendus peuvent être utilisés pour représenter un caractère ne rentrant pas dans l'espace de stockage alloué pour un type char. Un caractère étendu est stocké dans un espace à deux octets.

Une constante caractère précédée immédiatement par un L est une constante caractère étendu de type de données wchar_t (défini dans stddef.h). Par exemple :

wchar_t ch = L'A';

Quand wchar_t est utilisé dans un programme C, c'est un type défini dans le fichier d'en-tête stddef.h. Dans un programme C++, wchar_t est un mot clé qui peut représenter des codes distincts pour tout élément du plus grand jeu de caractères étendus, dans tous les paramètres régionaux supportés. Dans C++Builder, wchar_t a la même taille, la même signature et la même exigence d'alignement qu'un type unsigned short.

Une chaîne précédée immédiatement par un L est une chaîne de caractères étendus. La mémoire allouée pour une chaîne est de deux octets par caractère. Par exemple :

wchar_t *str = L"ABCD";

Littéraux Unicode dans C++11

L'extension C++11 fournit deux nouveaux types de caractères, char16_t et char32_t. Ils peuvent représenter des caractères Unicode. char16_t et char32_t sont des mots clés dans C++11. char16_t définit un type de caractère 16 bits qui peut être utilisé pour représenter des caractères Unicode encodés en UTF-16. char32_t définit un type de caractère 32 bits qui peut être utilisé pour représenter des caractères encodés en UTF-32.

Vous pouvez utiliser les nouveaux formats suivants des littéraux encodés en UTF-16 et UTF-32 :

  • Une constante caractère précédée immédiatement par u est le caractère Unicode encodé en UTF-16 du type de données char16_t.
  • Une constante caractère précédée immédiatement par U est le caractère encodé en UTF-32 du type de données char32_t.
  • Un littéral chaîne précédé immédiatement par u contient des caractères Unicode encodés en UTF-16 du type de données char16_t.
  • Un littéral chaîne précédé immédiatement par U contient des caractères encodés en UTF-32 du type de données char32_t.

Constantes multicaractères

Le compilateur supporte aussi des constantes multicaractères. Les constantes multicaractères peuvent comporter jusqu'à quatre caractères. Par exemple, la constante '\006\007\008\009' est seulement valide dans un programme C++Builder. Les constantes multicaractères sont toujours des valeurs int 32 bits. Les constantes ne sont pas portables vers les autres compilateurs C++.

Voir aussi