ফাংশনগুলো ডিফল্টভাবে এক্সটার্নাল লিংকেজ পায় এবং প্রজেক্টের যেকোনো অন্য ফাইল থেকে কল করা যায়।
লিংকেজ সম্পর্কে আরও জানতে অনুগ্রহ করে লিংকেজ কনসেপ্ট দেখুন।
একটি static ফাংশন কেবল যে সোর্স ফাইলে এটি ডিফাইন করা হয়েছে, সেই ফাইলের ভেতর থেকেই কল করা যায়।
উদাহরণস্বরূপ
// file scope, internal linkage
// can only be called from within this file
static void some_function()
{
// code snipped
}
// file scope, external linkage by default
// can be called from any other file in the project
int main()
{
// code snipped
}
কোনো ফাংশন হেডারে ডিক্লেয়ার করা থাকলেও, যদি সেটি static হিসেবে ডিফাইন করা হয়, তাহলে তার সোর্স ফাইলের বাইরে থেকে এটি কল করা যাবে না।
একটি সোর্স ফাইল হেডারটি ইনক্লুড করতে পারে, হেডারে ডিক্লেয়ার করা static ফাংশনটি কল করতে পারে, এবং কম্পাইলও হতে পারে, কিন্তু লিংকার static ফাংশনটির ডেফিনিশন খুঁজে পেতে ব্যর্থ হবে।
সোর্স ফাইলে static হিসেবে চিহ্নিত একটি ফাংশন তার হেডার ফাইলে ডিক্লেয়ার করা উচিত নয়।