मैं कुछ सी कोड लिखने की कोशिश कर रहा हूं जो केवल पोर्टेबल है क्योंकि उपयोगकर्ता के पास gcc
है, और glib
स्थापित है।ग्लिब गनिचार और wchar_t के बीच क्या अंतर है और जो क्रॉस-प्लेटफ़ॉर्म समाधानों के लिए बेहतर है?
अपने सभी अनुसंधान से, मैं पाया है कि gcc
के साथ, एक wchar_t
हमेशा 4 बाइट के रूप में परिभाषित किया गया है, और glib
के साथ एक gunichar
भी 4 बाइट है।
क्या मैं नहीं पता लगा है, तो एक gunichar
की तरह, एक wchar_t
रूप में अच्छी तरह UCS4 के रूप में एन्कोड किया जाता है। क्या यह मामला है? यदि ऐसा है, तो gunichar*
को wchar_t*
पर डालने में सक्षम होना चाहिए और stdc wcs*
फ़ंक्शंस का उपयोग करें, है ना?
हम्म। धन्यवाद। मैंने अभी देखा है कि लगभग सभी ग्लिब यूनिकोड फ़ंक्शन utf8 स्ट्रिंग्स पर काम करते हैं, और जो मैं समझता हूं (गलत हो सकता है) से एक बहु-बाइट एन्कोडेड चार सरणी के माध्यम से पुन: प्रयास करना अक्षम है क्योंकि आपको यह सुनिश्चित करने के लिए एक इटरेटर का उपयोग करने की आवश्यकता है पूर्ण चार और बस एक बाइट नहीं (केवल सरणी के माध्यम से मैं आपको ++ नहीं कर सकता)। मैंने अभी दस्तावेज़ों को दोबारा जांच लिया है और g_utf8_next_char() को मैक्रो के रूप में कार्यान्वित किया गया है, इसलिए मुझे लगता है कि अब मुझे यह कोई मुद्दा नहीं है। एक बार फिर धन्यवाद। – ckot
@skot सभ्य यूनिकोड समर्थन महंगा है, किसी भी तरह से आप इसे डाल दिया। एक बार आपका प्रोग्राम/लाइब्रेरी काम करने के बाद प्रदर्शन के बारे में चिंता करें, पहले नहीं। – rubenvb
अच्छा बिंदु। चीजें अब तक अच्छी तरह से काम कर रही प्रतीत होती हैं, इसलिए अगर मुझे जरूरत है तो मैं उस पुल को पार कर दूंगा। एक बार फिर धन्यवाद। – ckot