159 votes

Que signifie le "L" devant une chaîne en C ++?

 this->textBox1->Name = L"textBox1";
 

Bien que cela semble fonctionner sans les L , à quoi sert le préfixe? La façon dont il est utilisé n’a même aucun sens pour un programmeur C hardcore.

128voto

Gleno Points 4580

Il s'agit d'un littéral wchar_t , pour un jeu de caractères étendu. Wikipedia a une petite discussion sur ce sujet et des exemples c ++.

78voto

saidox Points 79

L signifie wchar_t et il est codé en 16 bits plutôt qu'en 8 bits, par exemple:

 "A"    = 41
"ABC"  = 41 42 43
L"A"   = 00 41
L"ABC" = 00 41 00 42 00 43
 

wchar_t est deux fois plus gros qu'un simple caractère. dans les utilisations quotidiennes, vous n'utilisez pas wchar_t mais si vous utilisez windows.h, vous en aurez besoin.

18voto

karadoc Points 970

Cela signifie que le texte est stocké sous forme de wchar_t caractères plutôt que de vieux char caractères.

(Au départ, je disais que cela voulait dire unicode. Je me suis trompé à ce sujet. Mais cela peut être utilisé pour unicode.)

13voto

Cela signifie que c'est un tableau de caractères larges ( wchar_t ) au lieu de caractères étroits ( char ).

C'est juste une chaîne d'un type différent de caractère, pas nécessairement une chaîne Unicode .

10voto

jdehaan Points 14019

L est un préfixe utilisé pour les chaînes larges. Chaque caractère utilise plusieurs octets (en fonction de la taille de wchar_t ). Le codage utilisé est indépendant de ce préfixe. Je veux dire que cela ne doit pas nécessairement être UTF-16 contrairement à ce qui est indiqué dans d'autres réponses ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X