Obwohl es ohne das zu funktionieren scheint L, was ist der Zweck des Präfixes? Die Art und Weise, wie es verwendet wird, macht für einen Hardcore-C-Programmierer nicht einmal Sinn.
Sie verwenden kein C ++. In einem C ++ / CLI-Programm ist es optional, wenn das Zeichenfolgenliteral nur ASCII-Zeichen enthält. Der Compiler konvertiert es automatisch in eine utf-16-codierte Zeichenfolge, die in beide Richtungen interniert ist.
Hans Passant
7
@Hans: "Sie verwenden kein C ++" Woher wissen Sie das?
Leichtigkeitsrennen im Orbit
Antworten:
138
Es ist ein wchar_tLiteral für erweiterte Zeichensätze. Wikipedia hat eine kleine Diskussion zu diesem Thema und C ++ - Beispiele.
"L" bedeutet wchar_t, dass im Gegensatz zu einem normalen Zeichen 16 Bit Speicher anstelle von 8 Bit erforderlich sind. Hier ist ein Beispiel:
"A"=41"ABC"=414243
L"A"=0041
L"ABC"=004100420043
A wchar_tist doppelt so groß wie ein einfacher Saibling. Im täglichen Gebrauch müssen Sie wchar_t nicht verwenden, aber wenn Sie windows.h verwenden, werden Sie es benötigen.
Hinweis: Es ist nicht unbedingt 16 Bit. Es ist betriebssystemspezifisch.
Batman
3
Ich denke, dass unter Linux wchar_t 32 Bit ist
user10607
8
"Im täglichen Gebrauch müssen Sie wchar_t nicht verwenden" ist eine willkürliche Konjugation. Als nicht englischer Muttersprachler kann ich sagen, dass ich es die ganze Zeit benutzen muss ...
Heyji
18
Dies bedeutet, dass der Text als wchar_tZeichen und nicht als einfache alte charZeichen gespeichert wird .
(Ich habe ursprünglich gesagt, dass es Unicode bedeutet. Ich habe mich geirrt. Aber es kann für Unicode verwendet werden.)
L ist ein Präfix für breite Zeichenfolgen. Jedes Zeichen verwendet mehrere Bytes (abhängig von der Größe von wchar_t). Die verwendete Codierung ist unabhängig von diesem Präfix. Ich meine, es muss nicht unbedingt UTF-16 sein, anders als in anderen Antworten hier angegeben.
Antworten:
Es ist ein
wchar_t
Literal für erweiterte Zeichensätze. Wikipedia hat eine kleine Diskussion zu diesem Thema und C ++ - Beispiele.quelle
"L" bedeutet
wchar_t
, dass im Gegensatz zu einem normalen Zeichen 16 Bit Speicher anstelle von 8 Bit erforderlich sind. Hier ist ein Beispiel:A
wchar_t
ist doppelt so groß wie ein einfacher Saibling. Im täglichen Gebrauch müssen Sie wchar_t nicht verwenden, aber wenn Sie windows.h verwenden, werden Sie es benötigen.quelle
Dies bedeutet, dass der Text als
wchar_t
Zeichen und nicht als einfache altechar
Zeichen gespeichert wird .(Ich habe ursprünglich gesagt, dass es Unicode bedeutet. Ich habe mich geirrt. Aber es kann für Unicode verwendet werden.)
quelle
Es bedeutet, dass es ein breiter Charakter ist
wchar_t
.Ähnlich wie
1L
ein langer Wert.quelle
Dies bedeutet, dass es sich um ein Array von breiten Zeichen (
wchar_t
) anstelle von schmalen Zeichen (char
) handelt.Es ist nur eine Zeichenfolge einer anderen Art von Zeichen, nicht unbedingt eine Unicode-Zeichenfolge .
quelle
L ist ein Präfix für breite Zeichenfolgen. Jedes Zeichen verwendet mehrere Bytes (abhängig von der Größe von
wchar_t
). Die verwendete Codierung ist unabhängig von diesem Präfix. Ich meine, es muss nicht unbedingt UTF-16 sein, anders als in anderen Antworten hier angegeben.quelle