C Programming Language শিখুন – Scope

7
328

সবাইকে সালাম ও শুভেচ্ছা। আশা করি সবাই ভালো আছেন। অনেক আগে শুরু করা C Programming এর উপর টিউটোরিয়াল গুলো অনেক দূর এগিয়ে নিয়ে গেলেও শেষ করা হয়ে উঠেনি বিভিন্ন কারনে। তার জন্য নিশ্চই আমার উপর ক্ষেপে আছেন অনেকেই। অলসতা, ব্যস্ততা আর ক্লাসের কারনেই যত গোলমাল হয়েছে। সবাই আমাকে তাই ক্ষমা করে দিবেন। এবার আশা করি একটানা আরো কিছু টিউটোরিয়াল লিখতে পাবর। সবার কাছে সেই দোয়া চেয়ে আবারও শুরু করছি। আজ C Programming এর ছোট একটা Basic Topics – Scope নিয়ে কিছু লিখব। কেউ যদি আমার এত দিনের Gap এর কারনে পূর্বের সব কিছু ভুলে গিয়ে থাকনে তাহলে পিছন থেকে একটু ঘুরে আসতে পারেন।

Scope কি?

একটি প্রোগ্রামের Identifier গুলো কোথায় ব্যবহার করা হবে কোথায় বা কোন অংশে তাদের ক্ষমতা থাকবে তাই হচ্ছে Scope। Scope এর বাংলা হচ্ছে সুযোগ। আমরা প্রোগ্রামে যে সকল Variable বা চলক গুলো ব্যবহার করি তা প্রোগ্রামের একটি নির্দিষ্ট অঞ্ছলেই ব্যবহার করা যায়।  অন্য যাগায় তারা নিষ্কিয় থাকে।

যেমন একটি Variable বা চলক তারা  declare বা ঘোষনা করার আগে ব্যবহার করা যায় না। আবার প্রোগ্রামের একটি ফাংশান বা ব্লকে তা ডিক্লেয়ার করলে তা অন্য ব্লকে ব্যবহার করা যায় না। সুতরাং বলা যায় যে Scope শুরু হয় যখন কোন Variable যদি declare করা হয় তখন।

Scope এর একটা উদাহরন দেখিঃ

#include<stdio.h>
int x=4;  //Gobal Variable.
int main(void)
{
int x=8;  //Inside Main function Variable.
{
int x=12; //Block variable or function variable.
printf(“Block x: %d \n”,x);
}
printf(“Inside Main function x: %d \n”,x);
printf(“Global x: %d \n”,::x);
return 0 ;
}

ফলাফলঃ

Block x: 12;
Inside Main function x: 8
Global x:

এখানে প্রথমে Main function বা প্রধান ফাংশানের আগে x=4; ধরা হয়েছে। যা হচ্ছে গ্লোবাল বা সার্বোজনীন Variable। এটা যেকোন যায়গায় ব্যবহার করা যাবে।

তার পর Main function বা প্রধান ফাংশানের পরে কিন্তু ব্লকের আগে আরেকটি x Variable ব্যবহার করা হয়েছে। যা প্রধান ফাংশানের পরে যে কোন যাগায় ব্যবহার করা যাবে।

একটি ব্লগে আবার ও আরেকটি x Variable ডিক্লেয়ার করা হয়েছে। যা শুধু মাত্র ঐ কোড ব্লকেই কাজ করবে। ঐ কোড ব্লকের পর আর কাজ করবে না।

বুঝার সুবিধার জন্য এখানে একটি মাত্র Variable ব্যবহার করা হয়েছে। সব যায়গায়ই Variable হিসেবে x নেওয়া হয়েছে শুধু মাত্র এর মান ভিন্ন ধরা হয়েছে।

Global x এর মান ধরা হয়েছে 4, Main function এর ভিতরের x এর মান ধরা হয়েছে 8 এবং Block এর ভিতরের x এর মান ধরা হয়েছে 12। প্রোগাম টি রান করালে দেখা যায় যে একটি মাত্র চলক ব্যবহার করা সত্যেও বিভিন্ন যাগায় বিভিন্ন মান প্রিন্ট করে।

যদি অন্য আরো Variable করা হয় তাহলে  Global Variable এর একসেস পেতে ঐ Variable এর আগে দুটি কোলন(::) দিতে হয়। যা উপরের প্রোগ্রামের মধ্যে নিচের লাইনের মধ্যে ব্যবহার করা হয়েছে

printf("Global x: %d \n",::x);

কিন্তু একই নামের অন্য কোন Variable ব্যবহার না করলে সাধারন নিয়মেই Global Variable ব্যবহার করা যায়।

আর এ ক্ষেত্রে  precedence বা অগ্রাধিকার হচ্ছে আগে ব্লকে ব্যবহৃত Variable এর। তার পর Main function এর ভিতরেরVariable এর। এবং শেষে Global Variable এর।

যারা CSE এর Student তাদের জন্যঃ Scope in C Programming Language

7 COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here