स्थैतिक चरों को स्थिर कीवर्ड का उपयोग करके परिभाषित किया जा सकता है। वे वेरिएबल्स हैं जो प्रोग्राम के चलने के दौरान मेमोरी में रहते हैं यानी उनका जीवनकाल पूरा प्रोग्राम रन होता है। यह स्वचालित चरों से भिन्न है क्योंकि वे स्मृति में तभी रहते हैं जब उनका कार्य चल रहा होता है और कार्य समाप्त होने पर नष्ट हो जाते हैं।
फ़ंक्शन-स्तरीय स्थिर चर पहली बार उपयोग किए जाने पर बनाए और प्रारंभ किए जाते हैं, हालांकि तब के लिए मेमोरी प्रोग्राम लोड समय पर आवंटित की जाती है।
एक प्रोग्राम जो C में फंक्शन-लेवल स्टैटिक वेरिएबल्स को प्रदर्शित करता है, वह इस प्रकार दिया गया है -
उदाहरण
#include<stdio.h> int func() { static int num = 0; num += 5; return num; } int main() { for(int i = 0; i<5; i++) { printf("%d\n", func()); } return 0; }
आउटपुट
उपरोक्त कार्यक्रम का आउटपुट इस प्रकार है।
5 10 15 20 25
आइए अब उपरोक्त कार्यक्रम को समझते हैं।
फ़ंक्शन func() में एक स्थिर चर संख्या होती है जिसे 0 से प्रारंभ किया जाता है। फिर संख्या 5 से बढ़ जाती है और इसका मान वापस कर दिया जाता है। इसे दिखाने वाला कोड स्निपेट इस प्रकार है।
int func() { static int num = 0; num += 5; return num; }
फ़ंक्शन मुख्य () में, फ़ंक्शन func () को लूप का उपयोग करके 5 बार कॉल किया जाता है और यह संख्या का मान देता है जो मुद्रित होता है। चूंकि num एक स्थिर चर है, यह प्रोग्राम के चलने के दौरान मेमोरी में रहता है और यह लगातार मान प्रदान करता है। इसे दिखाने वाला कोड स्निपेट इस प्रकार है।
int main() { for(int i = 0; i<5; i++) { printf("%d\n", func()); } return 0; }