কম্পিউটার টিউটোরিয়াল

C-এ স্টোরেজ ক্লাস


C ভাষায়, ভেরিয়েবল এবং ফাংশনগুলির বৈশিষ্ট্যগুলো (visibility এবং scope) স্টোরেজ ক্লাস দ্বারা বর্ণনা করা হয়।

C-এ চার ধরনের স্টোরেজ ক্লাস রয়েছে: অটোম্যাটিক ভেরিয়েবল, এক্সটার্নাল ভেরিয়েবল, স্ট্যাটিক ভেরিয়েবল, এবং রেজিস্টার ভেরিয়েবল।

auto

Auto স্টোরেজ ক্লাস সব লোকাল ভেরিয়েবলের জন্য ডিফল্ট স্টোরেজ ক্লাস। এটি ফাংশন কল হলে তৈরি হয়। ফাংশন এক্সিকিউশন সম্পূর্ণ হলে ভেরিয়েবলগুলো অটোম্যাটিক্যালি ধ্বংস হয়ে যায়।

এগুলো লোকাল ভেরিয়েবল হিসাবেও পরিচিত কারণ এগুলো একটি ফাংশনului লোকাল। ডিফল্টরূপে কম্পাইলার গার্বেজ ভ্যালু অ্যাসাইন করে।

স্কোপ − auto ভেরিয়েবল ফাংশন ব্লকের লোকাল।

ডিফল্ট মান − গার্বেজ ভ্যালু ডিফল্ট আরম্ভকৃত মান।

লাইফটাইম − auto ভেরিয়েবলের লাইফটাইম সেটি যে ব্লকে ডিফাইন করা হয়েছে তার দ্বারা আবদ্ধ।

C-এ auto ভেরিয়েবল উদাহরণ:

উদাহরণ

#include <stdio.h>
int main() {
    auto int a = 28;
    int b = 8;
    printf("The value of auto variable : %d\n", a);
    printf("The sun of auto variable & integer variable : %d", (a+b));
    return 0;
}

আউটপুট

The value of auto variable : 28
The sun of auto variable & integer variable : 36

extern

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

স্কোপ − তারা যেকোনো ফাংশন দ্বারা বাঁধা নেই। সারা প্রোগ্রামে সব জায়গায় থাকেন অর্থাৎ গ্লোবাল।

ডিফল্ট মান − গ্লোবাল ভেরিয়েবলগুলোর ডিফল্ট আরম্ভকৃত মান শূন্য।

লাইফটাইম − প্রোগ্রাম এক্সিকিউশনের শেষ পর্যন্ত।

C-এ extern ভেরিয়েবল উদাহরণ:

উদাহরণ

#include <stdio.h>
extern int x = 32;
int b = 8;
int main() {
    auto int a = 28;
    extern int b;
    printf("The value of auto variable : %d\n", a);
    printf("The value of extern variables x and b : %d,%d\n",x,b);
    x = 15;
    printf("The value of modified extern variable x : %d\n",x);
    return 0;
}

আউটপুট

The value of auto variable : 28
The value of extern variables x and b : 32,8
The value of modified extern variable x : 15

static

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

স্কোপ − তারা ব্লকের লোকাল।

ডিফল্ট মান − ডিফল্ট আরম্ভকৃত মান শূন্য।

লাইফটাইম − প্রোগ্রাম এক্সিকিউশনের শেষ পর্যন্ত।

C-এ static ভেরিয়েবল উদাহরণ:

উদাহরণ

#include <stdio.h>
int main() {
    auto int a = -28;
    static int b = 8;
    printf("The value of auto variable : %d\n", a);
    printf("The value of static variable b : %d\n",b);
    if(a!=0)
        printf("The sum of static variable and auto variable : %d\n",(b+a));
    return 0;
}

আউটপুট

The value of auto variable : -28
The value of static variable b : 8
The sum of static variable and auto variable : -20

register

রেজিস্টার ভেরিয়েবল কম্পাইলারকে ভেরিয়েবলটি মেমরির পরিবর্তে CPU রেজিস্টারে সংরক্ষণ করতে বলে। ঘন ঘন ব্যবহৃত ভেরিয়েবলগুলো রেজিস্টারে রাখা হয় এবং তাদের দ্রুত অ্যাক্সেসিবিলিটি থাকে। এই ভেরিয়েবলগুলোর ঠিকানা কখনো পাওয়া যায় না।

স্কোপ − তারা ফাংশনului লোকাল।

ডিফল্ট মান − ডিফল্ট আরম্ভকৃত মান গার্বেজ ভ্যালু।

লাইফটাইম − যে ব্লকে এটি ডিফাইন করা হয়েছে সেটির এক্সিকিউশন শেষ পর্যন্ত।

C-এ register ভেরিয়েবল উদাহরণ:

উদাহরণ

#include <stdio.h>
int main() {
    register char x = 'S';
    register int a = 10;
    auto int b = 8;
    printf("The value of register variable b : %c\n",x);
    printf("The sum of auto and register variable : %d",(a+b));
    return 0;
}

আউটপুট

The value of register variable b : S
The sum of auto and register variable : 18

  1. জাভাস্ক্রিপ্ট ভেরিয়েবলের মান অ্যালার্ট বক্সে কীভাবে দেখাবেন?

  2. HTML H1 এর মান JavaScript ভেরিয়েবলে কিভাবে নিবেন?

  3. HTML5 লোকাল স্টোরেজে কী এক্সিস্ট করে কিনা চেক করা

  4. HTML DOM Storage setItem() মেথড