C में एक स्टेटिक फंक्शन एक ऐसा फंक्शन होता है जिसका स्कोप उसकी ऑब्जेक्ट फाइल तक सीमित होता है। इसका मतलब है कि स्टेटिक फंक्शन केवल उसकी ऑब्जेक्ट फाइल में विजिबल होता है। फंक्शन के नाम से पहले static कीवर्ड रखकर फंक्शन को स्टेटिक फंक्शन घोषित किया जा सकता है।
इसे प्रदर्शित करने वाला एक उदाहरण निम्नलिखित है -
दो फाइलें हैं 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;
}
अब, यदि उपरोक्त कोड संकलित किया जाता है तो एक त्रुटि प्राप्त होती है यानी "undefined reference to 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() एक स्टेटिक फंक्शन है जो "Inside the static function staticFunc()" प्रिंट करता है। main() फंक्शन staticFunc() को कॉल करता है। यह प्रोग्राम सही ढंग से काम करता है क्योंकि स्टेटिक फंक्शन को केवल उसकी अपनी ऑब्जेक्ट फाइल से कॉल किया जाता है।