এখানে আমরা C-তে বৈশ্বিক ভেরিয়েবলের রি-ডিক্লেয়ারেশন কী তা দেখব। C কি এটি সমর্থন করে বা না করে। আসুন এটি সম্পর্কে ধারণা পেতে নিম্নলিখিত কোডটি দেখি।
উদাহরণ
#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'
সুতরাং আমরা দেখতে পাচ্ছি যে আমরা কেবলমাত্র বিশ্বব্যাপী ভেরিয়েবলগুলিকে পুনরায় ঘোষণা করতে পারি, যখন সেগুলি আরম্ভ করা হয় না৷