ध्यान दें कि यह प्रश्न मूल रूप से 2009 में पोस्ट किया गया था, इससे पहले कि C ++ 11 की पुष्टि की गई थी और
auto
कीवर्ड के अर्थ में काफी बदलाव किया गया था। प्रदान किए गए उत्तर केवल C ++ 03 से संबंधित हैंauto
- जिसका अर्थ है कि एक स्टोरेज क्लास निर्दिष्ट होना - और C ++ 11 का अर्थ नहीं हैauto
- जो कि स्वचालित प्रकार की कटौती है। यदि आप C ++ 11 का उपयोग करने के बारे में सलाह की तलाश कर रहे हैंauto
, तो यह प्रश्न उस प्रश्न के लिए प्रासंगिक नहीं है।
सबसे लंबे समय तक मैंने सोचा था कि static
सी में कीवर्ड का उपयोग करने का कोई कारण नहीं था , क्योंकि ब्लॉक-स्कोप के बाहर घोषित किए गए चर स्पष्ट रूप से वैश्विक थे। तब मुझे पता चला कि static
ब्लॉक-स्कोप के भीतर एक वैरिएबल घोषित करने से इसे स्थायी अवधि मिलेगी, और इसे ब्लॉक-स्कोप (प्रोग्राम-स्कोप में) के बाहर घोषित करने से इसे फाइल-स्कोप मिलेगा (केवल उस संकलन इकाई में पहुँचा जा सकता है)।
इसलिए यह मुझे केवल एक कीवर्ड के साथ छोड़ता है जिसे मैं (शायद) अभी तक पूरी तरह से नहीं समझता: auto
कीवर्ड। क्या 'स्थानीय चर' के अलावा इसका कुछ और अर्थ है? कुछ भी ऐसा नहीं है जो आपके लिए निहित नहीं है, जहाँ भी आप इसका उपयोग करना चाहते हैं? auto
प्रोग्राम के दायरे में एक चर कैसे व्यवहार करता है ? static auto
फ़ाइल-स्कोप में एक चर क्या है ? क्या इस कीवर्ड का पूर्णता के लिए मौजूदा के अलावा कोई उद्देश्य नहीं है ?