C ++ में स्ट्रिंग के सामने 'L' का क्या अर्थ है?


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

हालांकि यह बिना काम करने लगता है L, लेकिन उपसर्ग का उद्देश्य क्या है? जिस तरह से इसका उपयोग किया जाता है वह कट्टर सी प्रोग्रामर के लिए भी मायने नहीं रखता है।


4
आप C ++ का उपयोग नहीं कर रहे हैं। यह C ++ / CLI प्रोग्राम में वैकल्पिक है यदि स्ट्रिंग शाब्दिक में केवल ASCII वर्ण हैं। कंपाइलर स्वचालित रूप से इसे utf-16 एन्कोडेड स्ट्रिंग में परिवर्तित कर देता है जिसे दोनों तरह से इंटर्न किया जाता है।
हंस पसंत

7
@ हंस: "आप C ++ का उपयोग नहीं कर रहे हैं" आप कैसे जानते हैं?
ऑर्बिट

जवाबों:


138

यह wchar_tविस्तारित चरित्र सेट के लिए एक शाब्दिक है। इस विषय पर विकिपीडिया की थोड़ी चर्चा है, और c ++ के उदाहरण हैं।


87

'L' का मतलब है wchar_t, जो एक सामान्य चरित्र के विपरीत, 8-बिट्स के बजाय 16-बिट स्टोरेज की आवश्यकता है। यहाँ एक उदाहरण है:

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

एक wchar_tसाधारण चार के रूप में ए दोगुना है। दैनिक उपयोग में आपको wchar_t का उपयोग करने की आवश्यकता नहीं है, लेकिन यदि आप windows.h का उपयोग कर रहे हैं, तो आपको इसकी आवश्यकता होने वाली है।


28
नोट: यह जरूरी नहीं कि 16 बिट है। यह ओएस विशिष्ट है।
बैटमैन

3
मुझे लगता है कि linux में wchar_t 32 बिट्स है
user10607

8
"दैनिक उपयोग में आपको wchar_t का उपयोग करने की आवश्यकता नहीं है" मनमाना जुगमेंट है। एक गैर देशी अंग्रेजी वक्ता के रूप में, मैं कह सकता हूं कि मुझे इसका हर समय उपयोग करना चाहिए ...
अरेजी

18

इसका मतलब यह है कि पाठ को wchar_tसादे पुराने charपात्रों के बजाय पात्रों के रूप में संग्रहीत किया जाता है ।

(मैंने मूल रूप से कहा कि इसका मतलब यूनिकोड है। मैं इसके बारे में गलत था। लेकिन इसे यूनिकोड के लिए इस्तेमाल किया जा सकता है।)


15

इसका मतलब है कि यह एक विस्तृत चरित्र है, wchar_t

करने के लिए इसी तरह के 1Lएक लंबे मूल्य जा रहा है।


14

इसका मतलब है कि यह wchar_tसंकीर्ण वर्णों ( char) के बजाय विस्तृत वर्णों ( ) का एक सरणी है ।

यह एक अलग तरह के चरित्र का सिर्फ एक स्ट्रिंग है, जरूरी नहीं कि एक यूनिकोड स्ट्रिंग हो


11

एल एक उपसर्ग है जिसका उपयोग व्यापक तारों के लिए किया जाता है। प्रत्येक चरित्र कई बाइट्स (आकार के आधार पर wchar_t) का उपयोग करता है । उपयोग की गई एन्कोडिंग इस उपसर्ग से स्वतंत्र है। मेरा मतलब है कि यह आवश्यक नहीं है कि यूटीएफ -16 इसके विपरीत यहां अन्य उत्तरों में कहा गया हो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.