समस्या
सी लैंग्वेज में विभिन्न स्टोरेज क्लासेस क्या हैं? कार्यक्रमों के साथ उन्हें समझाएं?
समाधान
एक स्टोरेज क्लास को वेरिएबल के स्कोप और लाइफ-टाइम के रूप में परिभाषित किया जाता है या एक फ़ंक्शन जो C प्रोग्राम के भीतर मौजूद होता है।
भंडारण कक्षाएं
सी में स्टोरेज क्लास निम्नलिखित हैं -
- स्वतः
- बाहरी
- स्थिर
- पंजीकरण
स्वचालित चर/स्थानीय चर
- कीवर्ड - ऑटो
- इन्हें स्थानीय चर भी कहा जाता है
- दायरा -
-
स्थानीय चर का दायरा उस ब्लॉक के भीतर उपलब्ध होता है जिसमें उन्हें घोषित किया जाता है।
-
ये चर एक ब्लॉक के अंदर घोषित किए गए हैं
-
- डिफ़ॉल्ट मान - कचरा मूल्य
उदाहरण
#include<stdio.h> void main (){ auto int i=1;{ auto int i=2;{ auto int i=3; printf ("%d",i); } printf("%d", i); } printf("%d", i); }
आउटपुट
3 2 1
वैश्विक चर/बाहरी चर
- कीवर्ड - बाहरी
-
इन चरों को ब्लॉक के बाहर घोषित किया जाता है और इसलिए इन्हें वैश्विक चर भी कहा जाता है
-
दायरा - वैश्विक चर का दायरा पूरे कार्यक्रम में उपलब्ध है।
- डिफ़ॉल्ट मान - शून्य
उदाहरण
#include<stdio.h> extern int i =1; /* this ‘i’ is available throughout program */ main (){ int i = 3; /* this ‘i' available only in main */ printf ("%d", i); fun (); } fun (){ printf ("%d", i); }
आउटपुट
31
स्थिर चर
- कीवर्ड - स्थिर
- दायरा - एक स्थिर चर का दायरा यह है कि यह पूरे कार्यक्रम में और फ़ंक्शन कॉल के बीच में अपना मान बनाए रखता है।
- स्थिर चर केवल एक बार प्रारंभ किए जाते हैं।
- डिफ़ॉल्ट मान - शून्य
उदाहरण
#include<stdio.h> main (){ inc (); inc (); inc (); } inc (){ static int i =1; printf ("%d", i); i++; }
आउटपुट
1 2 3
वैरिएबल रजिस्टर करें
- कीवर्ड - रजिस्टर करें
-
रजिस्टर वैरिएबल वैल्यू को सीपीयू रजिस्टर में स्टोर किया जाता है, न कि मेमोरी में जहां सामान्य वेरिएबल्स को स्टोर किया जाता है।
-
रजिस्टर सीपीयू में अस्थायी भंडारण इकाइयाँ हैं।
उदाहरण
#include<stdio.h> main (){ register int i; for (i=1; i< =5; i++) printf ("%d",i); }
आउटपुट
1 2 3 4 5