মডিউল ১৪-৭ঃ স্কোপ্স

একটি সি প্রোগ্রামে আমরা অনেকগুলো ভেরিয়েবল অনেক জায়গায় ডিক্লেয়ার করি। কোন ভেরিয়েবলটি কোন পর্যন্ত এক্সেস করা যায় তা জানতে আমরা এখন দেখব স্কোপ্স।

আমরা যদি একটি ফাংশনে কোন ভেরিয়েবল ডিক্লেয়ার করি তাহলে মেইন ফাংশন থেকে সেই ভেরিয়েবলকে এক্সেস করা যাবে না। ভেরিয়েবলটির স্কোপ্স হচ্ছে ওই ফাংশন পর্যন্তই। ওই ফাংশনের মধ্যে যেকোন জায়গায় এক্সেস করা যাবে।

#include<stdio.h>
void func()
{
    int s = 100;       // একটি ভেরিয়েবল ডিক্লেয়ার করা হয়েছে। এই ভেরিয়েবল এর স্কোপ্স হচ্ছে এই ফাংশন পর্যন্ত।
}
int main()
{
    printf("%d",s);    // এই লাইনে এরর দিবে। কারন এখানে আমরা s ভেরিয়েবল কে এক্সেস করার চেষ্টা করছি যেটি এখানে ডিক্লেয়ার করা হয় নি।
}

সেইমভাবে মেইন ফাংশনে ডিক্লেয়ার করা কোন ভেরিয়েবল মেইন ফাংশনের বাইরে থেকে এক্সেস করা যাবে না।

#include<stdio.h>
void func()
{
    printf("%d",x);    // এই লাইনে এরর দিবে। x ভেরিয়েবলটি ডিক্লেয়ার করা হয়েছে মেইন ফাংশনে। মেইন ফাংশনের বাইরে থেকে এক্সেস করা যাবে না।
}
int main()
{
    int x = 10;
}

একটি ভেরিয়েবল এর স্কোপ্স যে পুরো ফাংশন জুড়ে ব্যাপারটি কিন্তু এমন না। মেইন ফাংশনের মধ্যে একটি লুপের মধ্যে যদি কোন ভেরিয়েবল ডিক্লেয়ার করা হয় তাহলে সেই ভেরিয়েবলটি লুপের বাইরে থেকে এক্সেস করা যাবে না।

যদি কোন ভেরিয়েবল সব ধরনের ফাংশনের বাইরে লিখা হয় তখন সেগুলোকে বলা হয় গ্লোবাল ভেরিয়েবল। আর একটি গ্লোবাল ভেরিয়েবলকে পুরো কোডের যেকোন জায়গা থেকে এক্সেস করা যায়।

Last updated