কম্পিউটার

ফাংশন-স্তরের স্ট্যাটিক ভেরিয়েবলগুলি কখন C/C++ এ আরম্ভ করা হয়?


স্ট্যাটিক ভেরিয়েবলকে স্ট্যাটিক কীওয়ার্ড ব্যবহার করে সংজ্ঞায়িত করা যেতে পারে। এগুলি এমন ভেরিয়েবল যা প্রোগ্রামটি চলাকালীন মেমরিতে থাকে অর্থাৎ তাদের জীবনকাল পুরো প্রোগ্রামটি চালানো হয়। এটি স্বয়ংক্রিয় ভেরিয়েবলের থেকে আলাদা কারণ তারা শুধুমাত্র মেমরিতে থাকে যখন তাদের ফাংশন চলমান থাকে এবং ফাংশন শেষ হয়ে গেলে ধ্বংস হয়ে যায়।

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

একটি প্রোগ্রাম যা C-তে ফাংশন-স্তরের স্ট্যাটিক ভেরিয়েবল প্রদর্শন করে তা নিম্নরূপ দেওয়া হয় -

উদাহরণ

#include<stdio.h>
int func() {
   static int num = 0;
   num += 5;
   return num;
}
int main() {
   for(int i = 0; i<5; i++) {
      printf("%d\n", func());
   }
   return 0;
}

আউটপুট

উপরের প্রোগ্রামের আউটপুট নিম্নরূপ।

5
10
15
20
25

এখন আসুন উপরের প্রোগ্রামটি বুঝতে পারি।

ফাংশন func() একটি স্ট্যাটিক ভেরিয়েবল num ধারণ করে যা 0 তে আরম্ভ করা হয়। তারপর num 5 দ্বারা বৃদ্ধি করা হয় এবং এর মান প্রদান করা হয়। কোড স্নিপেট যা এটি দেখায় তা নিম্নরূপ।

int func() {
   static int num = 0;
   num += 5;
   return num;
}

ফাংশনে main(), ফাংশন func() কে একটি ফর লুপ ব্যবহার করে 5 বার বলা হয় এবং এটি প্রিন্ট করা সংখ্যার মান প্রদান করে। যেহেতু num একটি স্ট্যাটিক ভেরিয়েবল, প্রোগ্রামটি চলাকালীন এটি মেমরিতে থাকে এবং এটি সামঞ্জস্যপূর্ণ মান প্রদান করে। কোড স্নিপেট যা এটি দেখায় তা নিম্নরূপ।

int main() {
   for(int i = 0; i<5; i++) {
      printf("%d\n", func());
   }
   return 0;
}

  1. C/C++ এ putwchar() ফাংশন

  2. C/C++ এ memcpy()

  3. C/C++ এ AA গাছ?

  4. কেন বিশ্বব্যাপী ভেরিয়েবলগুলি C/C++ এ খারাপ?