সবাইকে সালাম ও শুভেচ্ছা। আশা করি সবাই ভালো আছেন। অনেক আগে শুরু করা C Programming এর উপর টিউটোরিয়াল গুলো অনেক দূর এগিয়ে নিয়ে গেলেও শেষ করা হয়ে উঠেনি বিভিন্ন কারনে। তার জন্য নিশ্চই আমার উপর ক্ষেপে আছেন অনেকেই। অলসতা, ব্যস্ততা আর ক্লাসের কারনেই যত গোলমাল হয়েছে। সবাই আমাকে তাই ক্ষমা করে দিবেন। এবার আশা করি একটানা আরো কিছু টিউটোরিয়াল লিখতে পাবর। সবার কাছে সেই দোয়া চেয়ে আবারও শুরু করছি। আজ C Programming এর ছোট একটা Basic Topics - Scope নিয়ে কিছু লিখব। কেউ যদি আমার এত দিনের Gap এর কারনে পূর্বের সব কিছু ভুলে গিয়ে থাকনে তাহলে পিছন থেকে একটু ঘুরে আসতে পারেন।
একটি প্রোগ্রামের Identifier গুলো কোথায় ব্যবহার করা হবে কোথায় বা কোন অংশে তাদের ক্ষমতা থাকবে তাই হচ্ছে Scope। Scope এর বাংলা হচ্ছে সুযোগ। আমরা প্রোগ্রামে যে সকল Variable বা চলক গুলো ব্যবহার করি তা প্রোগ্রামের একটি নির্দিষ্ট অঞ্ছলেই ব্যবহার করা যায়। অন্য যাগায় তারা নিষ্কিয় থাকে।
যেমন একটি Variable বা চলক তারা declare বা ঘোষনা করার আগে ব্যবহার করা যায় না। আবার প্রোগ্রামের একটি ফাংশান বা ব্লকে তা ডিক্লেয়ার করলে তা অন্য ব্লকে ব্যবহার করা যায় না। সুতরাং বলা যায় যে Scope শুরু হয় যখন কোন Variable যদি declare করা হয় তখন।
#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: 8Global 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
ধন্যবাদ সবাইকে। আবার ও প্রোগ্রামিং টিউন নিয়ে আসবো, সেই কামনায় আল্লাহ হাফেজ।
আমি জাকির হোসাইন। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 14 বছর 8 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 224 টি টিউন ও 1487 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 5 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
পৃথিবীতে অল্পকয়েক দিনের জন্য অনেকেই আসে, হেঁটে খেলে চলে যায়। এর মধ্যে অল্প কয়েক জনই পায়ের চাপ রেখে যায়।ওদের একজন হতে ইচ্ছে করে। প্রযুক্তির আরেকটি সেরা ব্লগ টেকটুইটস। আপনাদের স্বাগতম, যেখানে প্রতিটি বন্ধুর অংশ গ্রহনে গড়ে উঠেছে একটি পরিবার। আপনাদের পছন্দ হবে আশা করি। ফেসবুকে আমি - ?জাকির!
চমৎকার একটা জিনিস আমার খুব প্রয়োজন ছিন । শেয়ার করার জন্য আপনাকে ধন্যবাদ……………জাকির ভাই