এখানে আমরা দেখব সি-এ গ্লোবাল ভেরিয়েবল রি-ডিক্লেরেশন কী। সি এটি সাপোর্ট করে কিনা। ধারণা পেতে নিচের কোডটি দেখুন।
উদাহরণ ১: লোকাল ভেরিয়েবল (এরর)
#include <stdio.h>
int main() {
int a;
int a = 50;
printf("a is : %d\n", a);
}
আউটপুট
[Error] redeclaration of 'a' with no linkage
তো লোকাল ভেরিয়েবল রি-ডিক্লেয়ার করা যায় না। এখন গ্লোবাল ভেরিয়েবলের জন্য কী হয় তা দেখি।
উদাহরণ ২: গ্লোবাল ভেরিয়েবল (সফল)
#include <stdio.h>
int a;
int a = 50;
int main() {
printf("a is : %d\n", a);
}
আউটপুট
a is : 50
গ্লোবাল ভেরিয়েবল এখানে কোনো এরর দিচ্ছে না। এখন যদি প্রথম ডিক্লেরেশনে একটি মান থাকে, তবে কি এটিকে রি-ডিক্লেয়ার করা যাবে?
উদাহরণ ৩: ইনিশিয়ালাইজড গ্লোবাল ভেরিয়েবল (এরর)
#include <stdio.h>
int a = 10;
int a = 50;
int main() {
printf("a is : %d\n", a);
}
আউটপুট
[Error] redefinition of 'a'
তো আমরা শুধু তখন গ্লোবাল ভেরিয়েবল রি-ডিক্লেয়ার করতে পারি যখন সেগুলো ইনিশিয়ালাইজড না থাকে।