C में एक स्टैटिक फंक्शन एक ऐसा फंक्शन है जिसका दायरा उसकी ऑब्जेक्ट फाइल तक सीमित होता है। इसका मतलब है कि स्थिर फ़ंक्शन केवल इसकी ऑब्जेक्ट फ़ाइल में दिखाई देता है। फ़ंक्शन नाम से पहले स्थिर कीवर्ड रखकर फ़ंक्शन को स्थिर फ़ंक्शन के रूप में घोषित किया जा सकता है।
इसे प्रदर्शित करने वाला एक उदाहरण इस प्रकार दिया गया है -
दो फ़ाइलें हैं first_file.c और second_file.c. इन फाइलों की सामग्री इस प्रकार दी गई है -
First_file.c की सामग्री
static void staticFunc(void) { printf("Inside the static function staticFunc() "); }
Second_file.c की सामग्री
int main() { staticFunc(); return 0; }
अब, यदि उपरोक्त कोड संकलित किया गया है तो एक त्रुटि प्राप्त होती है अर्थात "staticFunc () के लिए अपरिभाषित संदर्भ"। ऐसा इसलिए होता है क्योंकि फ़ंक्शन staticFunc() एक स्थिर फ़ंक्शन है और यह केवल इसकी ऑब्जेक्ट फ़ाइल में दिखाई देता है।
एक प्रोग्राम जो C में स्थिर कार्यों को प्रदर्शित करता है, वह इस प्रकार दिया गया है -
उदाहरण
#include <stdio.h> static void staticFunc(void){ printf("Inside the static function staticFunc() "); } int main() { staticFunc(); return 0; }
आउटपुट
उपरोक्त कार्यक्रम का आउटपुट इस प्रकार है -
Inside the static function staticFunc()
उपरोक्त कार्यक्रम में, फ़ंक्शन staticFunc () एक स्थिर फ़ंक्शन है जो "स्थिर फ़ंक्शन के अंदर staticFunc ()" प्रिंट करता है। मुख्य () फ़ंक्शन staticFunc () को कॉल करता है। यह प्रोग्राम सही ढंग से काम करता है क्योंकि स्थिर फ़ंक्शन को केवल अपनी ऑब्जेक्ट फ़ाइल से ही कॉल किया जाता है।