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