में कॉन्स्ट-शुद्धता स्पष्ट रूप से const
का उपयोग करने के लिए अच्छा अभ्यास है जब तक कि कुछ म्यूटेबल होने का मतलब न हो, लेकिन आप कितनी दूर जाते हैं? अगर मेरे पास तारों की एक सरणी है, तो क्या मेरे फ़ंक्शन हस्ताक्षर में यह शामिल होना चाहिए?सी
char const * const * const my_strings
मैं जो भी इसे संशोधित करने के लिए नहीं जा रहा हूँ, तो यह लगातार पात्रों में से सरणियों के पहले तत्व के लिए निरंतर संकेत की एक सरणी के पहले तत्व के लिए एक निरंतर सूचक है। यह एक मुट्ठी भर है, और कोड लगभग अपठनीय है। यह सब एक साधारण डेटा संरचना है जैसे argv
।
मुझे लगता है कि कॉन्स्ट डिफ़ॉल्ट होना चाहिए और एक परिवर्तनीय कीवर्ड होना चाहिए।
क्या आप आम तौर पर उन const
एस में से एक हैं? तब उस बिंदु का क्या मतलब है, यदि आप इसे कम से कम कम करके कम आसानी से बदल सकते हैं?
अपने प्रश्न के दूसरे भाग के लिए, [comp.lang.c अकसर किये गए सवाल 11.10] (http://c-faq.com/ansi/constmismatch.html) –
@ जॉनबर्थोलोम्यू: धन्यवाद। मुझे एहसास नहीं हुआ कि मैं बस संदेश को दूर करने के लिए डाला जा सकता था। – mk12
हां, 'const' शायद डिफ़ॉल्ट होना चाहिए। मेरा मानना है कि बजेर्न स्ट्राउस्टुप ने वही कहा है लेकिन उन्हें सी के साथ पिछड़े संगतता को बनाए रखना था। पहले से ही एक कीवर्ड 'mutable' है। – bames53