सी प्रोग्रामिंग में स्टेटिक

Static C Programming



इस ट्यूटोरियल में, हम स्टैटिक कीवर्ड को वेरिएबल्स और फंक्शन्स में लागू करके समझाएंगे। स्टेटिक सी प्रोग्रामिंग में उपयोग किया जाने वाला एक कीवर्ड है, और इसे निम्नलिखित सिंटैक्स का उपयोग करके लागू किया जा सकता है:

स्थिर {डेटा प्रकार} {चर नाम}







स्थिर स्थानीय चर

जब किसी फ़ंक्शन में एक चर स्थिर होता है, तो चर फ़ंक्शन कॉल के बीच अपना मान सुरक्षित रखता है।



// उदाहरण1.c

#शामिल

NSमज़ा1()
{

NSगिनती=0;
गिनती++;
वापसीगिनती;
}

NSमज़ा2()
{
स्थिर NSगिनती=0;
गिनती++;
वापसीगिनती;
}

NSमुख्य()
{
printf ('fun1 पहली कॉल रिटर्न : %dएन',मज़ा1());
printf ('fun1 दूसरी कॉल रिटर्न : %dएनएन',मज़ा1());

printf ('fun2 पहली कॉल रिटर्न : %dएन',मज़ा2());
printf ('fun2 दूसरी कॉल रिटर्न : %dएन',मज़ा2());

वापसी 0;
}


उदाहरण 1.c में, हमारे पास दो कार्य हैं: fun1 () तथा fun2 () . में fun1 () , हम एक चर (गिनती) घोषित करते हैं और इसे 0 से प्रारंभ करते हैं। फिर, हम गणना चर को बढ़ाते हैं और परिणामी मान वापस करते हैं। का उपयोग करते हुए मुख्य() , हम बुलाते है fun1 () दो बार, और हर बार, 1 का मान लौटाया जाता है क्योंकि कॉल करने पर गिनती चर साफ़ हो जाता है fun1 () बन चूका है। में fun2 () हमने गिनती चर को स्थिर चर के रूप में घोषित किया। इसलिए, इसका मूल्य संरक्षित है। का उपयोग करते हुए मुख्य() , हम बुलाते है fun2 () दो बार: पहली बार, 1 का मान लौटाया जाता है, और दूसरी बार, 2 का मान लौटाया जाता है।



स्थिर वैश्विक चर

एक स्थिर वैश्विक चर अन्य वैश्विक चर के समान व्यवहार करता है, लेकिन इसे किसी अन्य सी प्रोग्राम से एक्सेस नहीं किया जा सकता है।





स्थिर कार्य

सी में, फ़ंक्शन डिफ़ॉल्ट रूप से वैश्विक होते हैं। हालाँकि, यदि हम एक स्थिर फ़ंक्शन घोषित करते हैं, तो फ़ंक्शन स्थानीय है और इसे किसी अन्य C प्रोग्राम से एक्सेस नहीं किया जा सकता है।

स्थैतिक चर का प्रारंभ

यदि एक स्थिर चर स्पष्ट रूप से प्रारंभ नहीं किया गया है, तो इसे 0 के रूप में प्रारंभ किया जाता है।



//उदाहरण2.c

#शामिल

NSमुख्य()
{
स्थिर NSमैं;

printf ('मैं' का मान : %dएन',मैं);

वापसी 0;
}


example2.c में, हमने एक स्थिर वैरिएबल i घोषित किया है जो इनिशियलाइज़ नहीं है। हालाँकि, क्योंकि चर स्थिर है, यह स्वचालित रूप से 0 से प्रारंभ हो जाता है।

यह ध्यान रखना महत्वपूर्ण है कि एक स्थिर चर को एक स्थिर शाब्दिक द्वारा प्रारंभ किया जाना चाहिए; हम किसी स्टैटिक वेरिएबल को इनिशियलाइज़ करने के लिए फंक्शन के रिटर्न वैल्यू का उपयोग नहीं कर सकते हैं।

// उदाहरण3.c

#शामिल

NSमज़ा1()
{
वापसी 5;
}

NSमुख्य()
{
स्थिर NSमैं=मज़ा1();
printf ('मैं' का मान : %dएन',मैं);
वापसी 0;
}


example3.c में, हम के रिटर्न मान का उपयोग करके एक स्थिर चर को प्रारंभ करने का प्रयास करते हैं fun1 () . हालांकि, जैसा कि आप देख सकते हैं, कोड संकलित होने पर एक त्रुटि लौटा दी जाती है।

सारांश

एक स्थिर चर का जीवनकाल और कार्यक्रम का जीवनकाल बराबर होता है।

यदि एक स्थिर चर प्रारंभ नहीं किया गया है, तो यह 0 के डिफ़ॉल्ट मान पर ले जाएगा।

न तो एक वैश्विक स्थैतिक चर और न ही एक स्थिर कार्य एक कार्यक्रम से सुलभ है, जिसमें इसे परिभाषित किया गया था।