स्पष्टीकरण: यह देखते हुए कि एक स्ट्रिंग शाब्दिक (देखें नीचे) एक const char[]
के रूप में लिखा जा सकता है, पर char[]
से शाब्दिक पर एक कम अधिकतम लंबाई भव्य रों सिर्फ एक वाक्यात्मक असुविधा है। सी मानक क्यों प्रोत्साहित करता है? एक चरित्र स्ट्रिंग मेंसी स्ट्रिंग की अधिकतम लंबाई अधिकतम चार [] से अलग शाब्दिक क्यों है?
509 पात्रों शाब्दिक या विस्तृत स्ट्रिंग (संयोजन के बाद) शाब्दिक
वहाँ नहीं है एक:
C89 मानक स्ट्रिंग शाब्दिक के लिए एक अनुवाद सीमा होती है एक चार सरणी के लिए सीमा; एक वस्तु में शायद
32767 बाइट्स (केवल एक की मेजबानी की स्थिति में)
लागू होता है (मुझे यकीन है कि क्या वस्तु या की मेजबानी पर्यावरण का मतलब है नहीं कर रहा हूँ), लेकिन किसी भी दर पर एक बहुत अधिक सीमा है।
मेरे समझ के साथ कि एक स्ट्रिंग शाब्दिक चार सरणी युक्त वर्ण, यानी के बराबर है है: यह
static const char __THE_LITERAL[] = { 'f', 'o', 'o', '\0' };
const char* str = __THE_LITERAL;
तो क्यों एक ऐसे में
const char* str = "foo";
: यह हमेशा कुछ इस तरह के पुनर्लेखन के लिए संभव है शाब्दिक पर कठोर सीमा?
यह बहुत अजीब है कि उन्होंने 65533 या 253 के बजाय 50 9 का चयन किया। –
आप इस लेख को पढ़ना चाहेंगे: http://msdn.microsoft.com/en-us/library/sx08afx2.aspx –
कार्यक्रम पर सीमाएं * स्रोत * संकलित कार्यक्रम पर सीमाओं के साथ कुछ भी नहीं है। –