2013-03-29 5 views
12

स्टोरेज क्लास पहचानकर्ता ऑटो का केस उपयोग करें? मैं समझता हूं कि सभी स्थानीय चर डिफ़ॉल्ट रूप से ऑटो हैं। लेकिन स्पष्ट रूप से ऑटो int लिखकर क्या अंतर बनाता है?स्थानीय चर ऑटो int और int int के बीच क्या अंतर है?

+0

की संभावित डुप्लिकेट (http://stackoverflow.com/questions/2192547/where-is-the- सी-ऑटो-कीवर्ड-प्रयुक्त) –

उत्तर

11

कड़ाई से कोई अंतर नहीं है।

{ 
    auto int a; 
    /* ... */ 
} 

और

{ 
    int a; 
    /* ... */ 
} 

बराबर हैं।

सामान्य अभ्यास auto विनिर्देशक को नहीं रखना है।

+0

मुझे यह सब मिल सकता है, इसका मतलब है कि ऑटो कीवर्ड का कोई विशेष महत्व नहीं है। – vkesh

+1

@vkesh सी के लिए सही है "' auto' "का अर्थ है" स्थिर 'नहीं, जो डिफ़ॉल्ट है। इसके पूर्ववर्ती बी में अधिक प्रभाव पड़ा। Http://en.wikipedia.org/wiki/B_(programming_language) –

+0

लिंक साझा करने के लिए बहुत बहुत धन्यवाद। – vkesh

2

दो संभावित मामलों के होते हैं:

  1. auto डिफ़ॉल्ट है, और स्पष्ट रूप से कुछ भी नहीं कीवर्ड जोड़ने
  2. auto अनुमति नहीं है (उदाहरण के लिए, एक वैश्विक चर पर), जिसमें मामले auto रोकता जोड़ने सिद्ध
+0

क्या आपका दूसरा संभावित मामला मतलब था कि यदि हम वैश्विक चर में ऑटो जोड़ते हैं तो वैश्विक चर को परिभाषित किया जाता है ?? यदि ऐसा है तो यदि आप कुछ जानते हैं तो क्या उपयोगिता है? – vkesh

+1

@vkesh: मैं कह रहा हूं कि यदि आप वैश्विक चर के लिए 'ऑटो' निर्दिष्ट करने का प्रयास करते हैं, तो कोड संकलित नहीं होगा (वैसे भी ठीक से काम करने वाले कंपाइलर के साथ)। जहां तक ​​"उपयोग-मामला क्या है", मेरा मुद्दा यह है कि कोई भी नहीं है। –

+0

इसे स्पष्ट करने के लिए बहुत बहुत धन्यवाद। – vkesh

2

आधुनिक दिन सी (सी 8 9, सी 99, सी 11) में auto कीवर्ड अनावश्यक है। इरादा स्पष्ट करने के अलावा ("यह एक गैर स्थैतिक चर है, और मेरा मतलब है!"), यह अब कोई उद्देश्य नहीं देता है। यह बी से लिया गया सी इतिहास का अवशेष है, लेकिन entry कीवर्ड की तरह व्यावहारिक रूप से अप्रचलित हो गया है।

मैंने इसे अपने जीवन में एक बार इस्तेमाल किया। यह अंतर्निहित पूर्णांक के साथ संयोजन के रूप में एक IOCCC प्रविष्टि में था: [? कहाँ सी ऑटो कीवर्ड प्रयोग किया जाता है]

drive() { auto motive; ... } 
संबंधित मुद्दे