সি ভাষায় গ্লোবাল এবং স্ট্যাটিক উভয় ভেরিয়েবলই কনস্ট্যান্ট মান দিয়ে ইনিশিয়ালাইজ করা আবশ্যক। কারণ এই ভেরিয়েবলগুলোর মান প্রোগ্রাম এক্সিকিউশন শুরু হওয়ার আগে জানা দরকার। যদি গ্লোবাল ও স্ট্যাটিক ভেরিয়েবলগুলোর জন্য কনস্ট্যান্ট মান প্রদান না করা হয়, তবে এরর জেনারেট হবে।
নিচে গ্লোবাল ও স্ট্যাটিক ভেরিয়েবল ইনিশিয়ালাইজেশনের উদাহরণ দেওয়া হলো।
উদাহরণ
#include <stdio.h>
int a = 5;
static int b = 10;
int main() {
printf("The value of global variable a : %d", a);
printf("\nThe value of global static variable b : %d", b);
return 0;
}
আউটপুট
The value of global variable a : 5 The value of global static variable b : 10
এখন উপরের প্রোগ্রামটি বুঝে নিই।
গ্লোবাল ভেরিয়েবল a-র মান ৫ এবং স্ট্যাটিক ভেরিয়েবল b-র মান ১০। তাই প্রোগ্রামটি সঠিকভাবে কাজ করছে।
যদি কনস্ট্যান্ট ব্যবহার না করে গ্লোবাল ও স্ট্যাটিক ভেরিয়েবল ইনিশিয়ালাইজ করা হয়, তবে এরর হবে। নিচে এরর প্রদর্শনের একটি প্রোগ্রাম দেওয়া হলো।
#include <stdio.h>
int func() {
return 25;
}
int main() {
static int a = func();
printf("%d ", a);
}
উপরের প্রোগ্রামটি initializer element is not constant এরর দেবে। সুতরাং গ্লোবাল ও স্ট্যাটিক ভেরিয়েবল শুধুমাত্র কনস্ট্যান্ট দিয়ে ইনিশিয়ালাইজ করা উচিত।