Bien que cela semble fonctionner sans le L, quel est le but du préfixe? La façon dont il est utilisé n'a même pas de sens pour un programmeur C hardcore.
Vous n'utilisez pas C ++. Il est facultatif dans un programme C ++ / CLI si le littéral de chaîne ne contient que des caractères ASCII. Le compilateur le convertit automatiquement en une chaîne encodée en utf-16 qui est internée dans les deux sens.
Hans Passant
7
@Hans: "Vous n'utilisez pas C ++" Comment le savez-vous?
Courses de légèreté en orbite le
Réponses:
138
C'est un wchar_tlittéral, pour un jeu de caractères étendu. Wikipedia a une petite discussion sur ce sujet et des exemples C ++.
«L» signifie wchar_t, qui, contrairement à un caractère normal, nécessite 16 bits de stockage au lieu de 8 bits. Voici un exemple:
"A"=41"ABC"=414243
L"A"=0041
L"ABC"=004100420043
A wchar_test deux fois plus grand qu'un simple caractère. Dans l'utilisation quotidienne, vous n'avez pas besoin d'utiliser wchar_t, mais si vous utilisez windows.h, vous en aurez besoin.
note: ce n'est pas forcément 16 bits. C'est spécifique au système d'exploitation.
batman
3
Je pense que dans linux wchar_t est 32 bits
user10607
8
«Dans l'usage quotidien, vous n'avez pas besoin d'utiliser wchar_t» est un jugement arbitraire. En tant que non anglophone, je peux dire que je dois l'utiliser tout le temps ...
Heyji
18
Cela signifie que le texte est stocké sous forme de wchar_tcaractères plutôt que d'anciens charcaractères.
(J'ai dit à l'origine que cela signifiait unicode. Je me suis trompé à ce sujet. Mais il peut être utilisé pour unicode.)
L est un préfixe utilisé pour les chaînes larges. Chaque caractère utilise plusieurs octets (selon la taille de wchar_t). Le codage utilisé est indépendant de ce préfixe. Je veux dire qu'il ne doit pas nécessairement être UTF-16 contrairement à ce qui est indiqué dans d'autres réponses ici.
Réponses:
C'est un
wchar_t
littéral, pour un jeu de caractères étendu. Wikipedia a une petite discussion sur ce sujet et des exemples C ++.la source
«L» signifie
wchar_t
, qui, contrairement à un caractère normal, nécessite 16 bits de stockage au lieu de 8 bits. Voici un exemple:A
wchar_t
est deux fois plus grand qu'un simple caractère. Dans l'utilisation quotidienne, vous n'avez pas besoin d'utiliser wchar_t, mais si vous utilisez windows.h, vous en aurez besoin.la source
Cela signifie que le texte est stocké sous forme de
wchar_t
caractères plutôt que d'ancienschar
caractères.(J'ai dit à l'origine que cela signifiait unicode. Je me suis trompé à ce sujet. Mais il peut être utilisé pour unicode.)
la source
Cela signifie qu'il est un caractère large,
wchar_t
.Semblable à
1L
une valeur longue.la source
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 de caractère différent, pas nécessairement une chaîne Unicode .
la source
L est un préfixe utilisé pour les chaînes larges. Chaque caractère utilise plusieurs octets (selon la taille de
wchar_t
). Le codage utilisé est indépendant de ce préfixe. Je veux dire qu'il ne doit pas nécessairement être UTF-16 contrairement à ce qui est indiqué dans d'autres réponses ici.la source