স্টোরেজ ক্লাস ভেরিয়েবলের স্কোপ, লাইফটাইম এবং বাইন্ডিং নির্দেশ করে।
একটি ভেরিয়েবল সম্পূর্ণরূপে ডিফাইন করতে, এর 'টাইপ' ছাড়াও এর স্টোরেজ ক্লাস উল্লেখ করতে হয়।
একটি ভেরিয়েবল নাম কম্পিউটার মেমরির একটি ফিজিক্যাল লোকেশন চিহ্নিত করে, যেখানে ভেরিয়েবলের ভ্যালু সংরক্ষণের জন্য বিটের একটি সংগ্রহ অ্যালোকেট করা হয়।
স্টোরেজ ক্লাস আমাদের নিচের বিষয়গুলো জানায়:
- ভেরিয়েবল কোথায় স্টোর হবে (মেমরিতে নাকি CPU রেজিস্টারে)?
- যদি কিছু ইনিশিয়ালাইজ না করা হয়, তবে ভেরিয়েবলের ইনিশিয়াল ভ্যালু কী হবে?
- ভেরিয়েবলের স্কোপ কী (কোথায় এটি অ্যাক্সেস করা যাবে)?
- ভেরিয়েবলের লাইফ কী?
বাইন্ডিং (Binding)
বাইন্ডিং একটি অ্যাপ্লাইড অকারেন্স (usage) এর জন্য সংশ্লিষ্ট বাইন্ডিং অকারেন্স (declaration/definition) খুঁজে বের করে।
- ভেরিয়েবলের স্কোপ জানা দরকার।
ব্লক স্ট্রাকচার কী?
কোন ব্লকে আইডেন্টিফায়ার ভেরিয়েবল?
- আমরা একই আইডেন্টিফায়ার নাম আবার ব্যবহার করলে কী হবে?
'C' একই স্কোপে একই আইডেন্টিফায়ার নাম ব্যবহার নিষেধ করে।
একই নাম ভিন্ন স্কোপে ব্যবহার করা যায়।
উদাহরণ
double f,y; int f( ) //error { --- ---- ---- } double y; //error
উদাহরণ
double y; int f( ){ double f;//legal int y; //legal }
উদাহরণ
ভেরিয়েবল বাইন্ডিং এর C প্রোগ্রাম:
#include<stdio.h> int i=33; main() { extern int i; { int i=22; { const volatile unsigned i=11; printf("i=%d\n",i); } printf("i=%d",i); } }
আউটপুট
উপরোক্ত প্রোগ্রামটি এক্সিকিউট করলে নিচের আউটপুটটি দেখায়:
i=11 i=22