this->textBox1->Name = L"textBox1";
แม้ว่ามันจะทำงานได้โดยไม่ต้องL
มีวัตถุประสงค์ของคำนำหน้าคืออะไร? วิธีการใช้ไม่ได้ทำให้รู้สึกถึงโปรแกรมเมอร์ C ง่าย ๆ
this->textBox1->Name = L"textBox1";
แม้ว่ามันจะทำงานได้โดยไม่ต้องL
มีวัตถุประสงค์ของคำนำหน้าคืออะไร? วิธีการใช้ไม่ได้ทำให้รู้สึกถึงโปรแกรมเมอร์ C ง่าย ๆ
คำตอบ:
มันเป็นwchar_t
ตัวอักษรสำหรับชุดอักขระแบบขยาย Wikipediaมีการอภิปรายเล็กน้อยในหัวข้อนี้และตัวอย่าง c ++
'L' หมายถึงwchar_t
ซึ่งตรงกันข้ามกับอักขระปกติต้องใช้หน่วยความจำ 16 บิตแทนที่จะเป็น 8 บิต นี่คือตัวอย่าง:
"A" = 41
"ABC" = 41 42 43
L"A" = 00 41
L"ABC" = 00 41 00 42 00 43
A wchar_t
มีขนาดใหญ่เป็นสองเท่าของถ่านธรรมดา ในการใช้งานทุกวันคุณไม่จำเป็นต้องใช้ wchar_t แต่ถ้าคุณใช้ windows.h คุณจะต้องใช้มัน
มันหมายถึงข้อความที่ถูกเก็บไว้เป็นwchar_t
ตัวละครมากกว่าchar
ตัวอักษรเก่าธรรมดา
(เดิมทีฉันบอกว่ามันหมายถึงยูนิโค้ดฉันผิดเกี่ยวกับเรื่องนั้น แต่มันสามารถใช้เป็น Unicode ได้)
wchar_t
ก็หมายความว่ามันเป็นตัวละครที่กว้าง
คล้ายกับ1L
การเป็นค่าที่ยาวนาน
หมายความว่าเป็นอาร์เรย์ของตัวอักษรกว้าง ( wchar_t
) แทนที่จะเป็นตัวอักษรแคบ ( char
)
มันเป็นเพียงแค่สตริงของชนิดที่แตกต่างของตัวละครที่ไม่จำเป็นต้องเป็นสายอักขระ Unicode
L เป็นคำนำหน้าที่ใช้สำหรับสตริงแบบกว้าง อักขระแต่ละตัวใช้หลายไบต์ (ขึ้นอยู่กับขนาดwchar_t
) การเข้ารหัสที่ใช้เป็นอิสระจากคำนำหน้านี้ ฉันหมายความว่ามันจะต้องไม่จำเป็นต้องเป็น UTF-16 ซึ่งต่างจากที่ระบุไว้ในคำตอบอื่น ๆ ที่นี่