स्टोरेज क्लासेस वेरिएबल्स के स्कोप, लाइफटाइम और बाइंडिंग को निर्दिष्ट करते हैं।
एक वेरिएबल को पूरी तरह से परिभाषित करने के लिए, न केवल उसका 'टाइप' बल्कि उसका स्टोरेज क्लास भी बताना आवश्यक है।
एक वेरिएबल नाम कंप्यूटर मेमोरी में कुछ भौतिक स्थान की पहचान करता है, जहां वेरिएबल के मानों को स्टोर करने के लिए बिट्स का संग्रह आवंटित किया जाता है।
स्टोरेज क्लास हमें निम्नलिखित कारक बताता है:
- वेरिएबल कहां स्टोर होता है (मेमोरी या CPU रजिस्टर में)?
- यदि कुछ इनिशियलाइज़ नहीं किया गया तो वेरिएबल का प्रारंभिक मान क्या होगा?
- वेरिएबल का स्कोप क्या है (इसे कहां एक्सेस किया जा सकता है)?
- वेरिएबल का जीवन क्या है?
बाइंडिंग
बाइंडिंग एक एप्लाइड ऑकरेंस (उपयोग) के लिए संबंधित बाइंडिंग ऑकरेंस (घोषणा/परिभाषा) ढूंढता है।
- वेरिएबल्स का स्कोप पता होना चाहिए।
ब्लॉक स्ट्रक्चर क्या है?
किस ब्लॉक में आइडेंटिफायर वेरिएबल है?
- यदि हम उसी आइडेंटिफायर नाम का फिर से उपयोग करते हैं तो क्या होगा?
'C' एक ही स्कोप में एक ही आइडेंटिफायर नाम के उपयोग को प्रतिबंधित करता है।
अलग-अलग स्कोप में एक ही नाम का उपयोग किया जा सकता है।
उदाहरण
double f, y;
int f() // त्रुटि
{
---
----
----
}
double y; // त्रुटि
उदाहरण
double y;
int f() {
double f; // वैध
int y; // वैध
}
उदाहरण
वेरिएबल की बाइंडिंग के लिए C प्रोग्राम:
#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