भंडारण वर्ग चर के दायरे, जीवनकाल और बंधन को निर्दिष्ट करते हैं।
एक चर को पूरी तरह से परिभाषित करने के लिए, किसी को न केवल इसके 'प्रकार' बल्कि इसके भंडारण वर्ग का भी उल्लेख करना होगा।
एक चर नाम कंप्यूटर मेमोरी के भीतर कुछ भौतिक स्थान की पहचान करता है, जहां चर के मूल्यों को संग्रहीत करने के लिए बिट्स का संग्रह आवंटित किया जाता है।
भंडारण वर्ग हमें निम्नलिखित कारक बताता है -
- वेरिएबल कहाँ संग्रहीत किया जाता है (मेमोरी या सीपीयू रजिस्टर में)?
- अगर कुछ भी इनिशियलाइज़ नहीं किया गया है, तो वेरिएबल का प्रारंभिक मान क्या होगा?
- चर का दायरा क्या है (जहां इसे एक्सेस किया जा सकता है)?
- चर का जीवन काल क्या है?
बाध्यकारी
बाइंडिंग एक पहचानकर्ता की लागू घटना (उपयोग) के लिए संबंधित बाध्यकारी घटना (घोषणा/परिभाषा) पाता है।
- चरों का दायरा पता होना चाहिए।
ब्लॉक संरचना क्या है?
पहचानकर्ता किस ब्लॉक में परिवर्तनशील है?
- क्या होगा यदि हम फिर से उसी पहचानकर्ता नाम का उपयोग करें?
'सी' एक ही दायरे में एक ही पहचानकर्ता नाम का उपयोग करने से मना करता है।
अलग-अलग क्षेत्रों में एक ही नाम का उपयोग किया जा सकता है।
उदाहरण
double f,y; int f( ) //error { --- ---- ---- } double y; //error
उदाहरण
double y; int f( ){ double f;//legal int y; //legal }
उदाहरण
एक चर के बंधन के लिए सी कार्यक्रम निम्नलिखित है -
#include<stdio.h> int i=33; main() { extern int i; { int i=22; { const volatile unsigned i=11; printf("i=%d\n",i); } printf("i=%d",i); } }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्न आउटपुट उत्पन्न करता है -
i=11 i=22