সি-এ একটি স্ট্যাটিক ফাংশন হলো এমন ফাংশন যার স্কোপ এর অবজেক্ট ফাইল পর্যন্ত সীমাবদ্ধ। অর্থাৎ স্ট্যাটিক ফাংশন শুধুমাত্র তার অবজেক্ট ফাইলে দৃশ্যমান। একটি ফাংশনকে স্ট্যাটিক ফাংশন হিসেবে ডিক্লেয়ার করতে ফাংশন নামের আগে 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() একটি স্ট্যাটিক ফাংশন এবং এটি শুধুমাত্র তার নিজস্ব অবজেক্ট ফাইলে দৃশ্যমান।
সি-এ স্ট্যাটিক ফাংশন প্রদর্শনের একটি প্রোগ্রাম:
উদাহরণ
#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() কল করে। এই প্রোগ্রাম সঠিকভাবে কাজ করে কারণ স্ট্যাটিক ফাংশন শুধুমাত্র তার নিজস্ব অবজেক্ট ফাইল থেকে কল করা হচ্ছে।