सी भाषा में, वेरिएबल और फ़ंक्शंस की विशेषताओं को स्टोरेज क्लासेस द्वारा वर्णित किया जाता है जैसे कि q वेरिएबल या फंक्शन की दृश्यता और स्कोप।
C भाषा में चार प्रकार के भंडारण वर्ग हैं:स्वचालित चर, बाहरी चर, स्थिर चर और रजिस्टर चर।
स्वतः
ऑटो स्टोरेज क्लास सभी स्थानीय चर के लिए डिफ़ॉल्ट स्टोरेज क्लास है। यह तब बनाया जाता है जब फ़ंक्शन कहा जाता है। जब फ़ंक्शन का निष्पादन पूरा हो जाता है, तो चर स्वचालित रूप से नष्ट हो जाते हैं।
उन्हें स्थानीय चर के रूप में भी जाना जाता है क्योंकि वे एक फ़ंक्शन के लिए स्थानीय होते हैं। डिफ़ॉल्ट रूप से, उन्हें कंपाइलर द्वारा गारबेज वैल्यू असाइन की जाती है।
दायरा - ऑटो वेरिएबल फ़ंक्शन ब्लॉक के लिए स्थानीय चर हैं।
डिफ़ॉल्ट मान − गारबेज मान डिफ़ॉल्ट आरंभिक मान है।
आजीवन − ऑटो वैरिएबल का जीवनकाल उस ब्लॉक से बंधा होता है जिसमें इसे परिभाषित किया जाता है।
यहाँ C भाषा में स्वतः चर का एक उदाहरण दिया गया है,
उदाहरण
#include <stdio.h> int main() { auto int a = 28; int b = 8; printf("The value of auto variable : %d\n", a); printf("The sun of auto variable & integer variable : %d", (a+b)); return 0; }
आउटपुट
The value of auto variable : 28 The sun of auto variable & integer variable : 36
बाहरी
बाहरी चर को वैश्विक चर के रूप में भी जाना जाता है। ये चर फ़ंक्शन के बाहर परिभाषित किए गए हैं। ये वेरिएबल पूरे फंक्शन एक्जीक्यूशन के दौरान विश्व स्तर पर उपलब्ध हैं। वैश्विक चर के मान को फ़ंक्शंस द्वारा संशोधित किया जा सकता है।
दायरा - वे किसी भी कार्य से बंधे नहीं हैं। वे कार्यक्रम में हर जगह हैं यानी वैश्विक।
डिफ़ॉल्ट मान − वैश्विक चर के डिफ़ॉल्ट प्रारंभिक मान शून्य हैं।
आजीवन − कार्यक्रम के निष्पादन के अंत तक।
सी भाषा में बाहरी चर का एक उदाहरण यहां दिया गया है,
उदाहरण
#include <stdio.h> extern int x = 32; int b = 8; int main() { auto int a = 28; extern int b; printf("The value of auto variable : %d\n", a); printf("The value of extern variables x and b : %d,%d\n",x,b); x = 15; printf("The value of modified extern variable x : %d\n",x); return 0; }
आउटपुट
The value of auto variable : 28 The value of extern variables x and b : 32,8 The value of modified extern variable x : 15
स्थिर
स्टेटिक वेरिएबल्स को केवल एक बार इनिशियलाइज़ किया जाता है। कंपाइलर प्रोग्राम के अंत तक वेरिएबल को बनाए रखता है। स्टैटिक वैरिएबल को फंक्शन के अंदर या बाहर परिभाषित किया जा सकता है।
दायरा - वे ब्लॉक के लिए स्थानीय हैं।
डिफ़ॉल्ट मान − डिफ़ॉल्ट आरंभिक मान शून्य है।
आजीवन − कार्यक्रम के निष्पादन के अंत तक।
यहाँ C भाषा में स्थिर चर का एक उदाहरण दिया गया है,
उदाहरण
#include <stdio.h> int main() { auto int a = -28; static int b = 8; printf("The value of auto variable : %d\n", a); printf("The value of static variable b : %d\n",b); if(a!=0) printf("The sum of static variable and auto variable : %d\n",(b+a)); return 0; }
आउटपुट
The value of auto variable : -28 The value of static variable b : 8 The sum of static variable and auto variable : -20
पंजीकरण करें
रजिस्टर वेरिएबल्स कंपाइलर को मेमोरी के बजाय सीपीयू रजिस्टर में वेरिएबल को स्टोर करने के लिए कहते हैं। अक्सर उपयोग किए जाने वाले चर रजिस्टरों में रखे जाते हैं और उनकी तेजी से पहुंच होती है। हम इन चरों के पते कभी प्राप्त नहीं कर सकते।
दायरा - वे समारोह के लिए स्थानीय हैं।
डिफ़ॉल्ट मान − डिफॉल्ट इनिशियलाइज़्ड वैल्यू गारबेज वैल्यू है..
आजीवन − जिस ब्लॉक में इसे परिभाषित किया गया है, उसके निष्पादन के अंत तक।
यहाँ C भाषा में रजिस्टर चर का एक उदाहरण दिया गया है,
उदाहरण
#include <stdio.h> int main() { register char x = 'S'; register int a = 10; auto int b = 8; printf("The value of register variable b : %c\n",x); printf("The sum of auto and register variable : %d",(a+b)); return 0; }
आउटपुट
The value of register variable b : S The sum of auto and register variable : 18