Constantes caractère

De RAD Studio
Aller à : navigation, rechercher

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

Une constante caractère est composée d'un ou de plusieurs caractères délimités par des apostrophes, telle que 'A', '+' ou '\n'. Dans C, les constantes à caractère unique ont le type de données int. Dans C++, une constante caractère a pour type char. Les constantes à caractères multiples ont le type de données int dans C et C++.

Pour de plus amples informations sur les constantes caractère, voir les rubriques suivantes : Les trois types char, Séquences d'échappement, Constantes à caractères étendus et à caractères multiples, Littéraux et types de caractères Unicode (C++11).

Tailles des types de caractères dans C et C++

Pour comparer les tailles des types de caractères, compilez ceci en tant que programme C, puis en tant que programme C++.

#include <stdio.h>
#define CH 'x'       /* A CHARACTER CONSTANT */
void main(void) {
  char ch = 'x';    /* A char VARIABLE      */
  printf("\nSizeof int     = %d", sizeof(int) );
  printf("\nSizeof char    = %d", sizeof(char) );
  printf("\nSizeof ch      = %d", sizeof(ch) );
  printf("\nSizeof CH      = %d", sizeof(CH) );
  printf("\nSizeof wchar_t = %d", sizeof(wchar_t) );
}

Remarque : Les tailles sont exprimées en octets.

Tailles des types de caractères dans C et C++ :

Sortie après compilation en C Sortie après compilation en C++

Sizeof int = 4

Sizeof int = 4

Sizeof char = 1

Sizeof char = 1

Sizeof ch = 1

Sizeof ch = 1

Sizeof CH = 4

Sizeof CH = 1

Sizeof wchar_t = 2

Sizeof wchar_t = 2


Quatre types de littéraux caractère dans C++11

Par défaut, un littéral caractère dans C++ contient un caractère ANSI du type de données char. Dans C++ et C++11, vous pouvez utiliser le préfixe L, devant un littéral caractère, pour spécifier que le littéral caractère doit contenir un caractère étendu du type de données wchar_t. Dans C++11, vous pouvez utiliser les préfixes u et U, devant un littéral caractère, pour spécifier que le littéral caractère doit contenir des caractères Unicode dans l'encodage UTF-16 (le type de données char16_t) ou UTF-32 (le type de données char32_t) (Littéraux et types de caractères Unicode (C++11)).

Par exemple, dans les programmes C++11, vous pouvez utiliser les littéraux caractère suivants :

  • 'A' - c'est le caractère ANSI du type de données char. Ce littéral caractère alloue un octet de mémoire.
  • L'A' - c'est le caractère étendu du type de données wchar_t. Ce littéral caractère alloue deux octets de mémoire.
  • u'A' - c'est le caractère Unicode encodé en UTF-16 du type de données char16_t. Ce littéral caractère alloue deux ou quatre octets de mémoire (selon que ce caractère appartient ou non au plan multilingue de base).
  • U'A' - c'est le caractère Unicode encodé en UTF-32 du type de données char32_t. Ce littéral caractère alloue quatre octets de mémoire.

Voir aussi