আমরা বুঝতে পারব কিভাবে C এবং C++ ভিন্নভাবে আচরণ করে যদি আমরা একটি গ্লোবাল ভেরিয়েবলকে ইনিশিয়ালাইজ না করেই পুনরায় ঘোষণা করি, গ্লোবাল ভেরিয়েবলকে ইনিশিয়ালাইজেশনের সাথে রিডিক্লেয়ার করি, গ্লোবাল ভেরিয়েবল রিডিক্লেয়ার করি এবং সেগুলোকে দুইবার ইনিশিয়ালাইজ করি। এছাড়াও, আমরা স্থানীয় ভেরিয়েবলের সাথে উপরের সমন্বয়গুলি পুনরাবৃত্তি করব।
1. ক) সি প্রোগ্রাম:কোনো আরম্ভ ছাড়াই গ্লোবাল ভেরিয়েবলকে পুনরায় ঘোষণা করা
#include <stdio.h> int var; int var; int main(){ printf("Var = %d",var); return 0; }
আউটপুট
Var = 0
B) C++ প্রোগ্রাম :কোনো আরম্ভ ছাড়াই গ্লোবাল ভেরিয়েবল পুনরায় ঘোষণা করা
#include <iostream> using namespace std; int var; int var; int main(){ cout<<"Var = "<<var; return 0; }
আউটপুট
Compilation Error: int var; main.cpp:3:5: note: ‘int var’ previously declared here
ফলাফল :- C আরম্ভ ছাড়াই বিশ্বব্যাপী ভেরিয়েবলের পুনঃ ঘোষণার অনুমতি দেয়। মান 0 থেকে যায়। C++ একটি সংকলন ত্রুটি দেয় যে পরিবর্তনশীলটি পুনরায় ঘোষণা করা হয়।
2. ক) সি প্রোগ্রাম :কোনো প্রারম্ভিকতা ছাড়াই স্থানীয় ভেরিয়েবলকে পুনরায় ঘোষণা করা
#include <stdio.h> #include <stdio.h> int main(){ int var; int var; printf("Var = %d",var); return 0; }
আউটপুট
error: redeclaration of ‘var’ with no linkage
B) C++ প্রোগ্রাম :কোনো আরম্ভ ছাড়াই স্থানীয় ভেরিয়েবল পুনরায় ঘোষণা করা
#include <iostream> using namespace std; int main(){ int var; int var; cout<<"Var = "<<var; return 0; }
আউটপুট
error: redeclaration of ‘int var’
ফলাফল :- C এবং C++ উভয়ই স্থানীয় ভেরিয়েবলের পুনঃঘোষণাকে অনুমতি দেয় না কোনো প্রাথমিককরণ না করে। উভয় প্রোগ্রাম কম্পাইলেশন ব্যর্থ হয়েছে.
3. ক) সি প্রোগ্রাম:প্রারম্ভিকতার সাথে গ্লোবাল ভেরিয়েবল পুনরায় ঘোষণা করা
#include <stdio.h> int main(){ int var; int var=10; printf("Var = %d",var); return 0; }
আউটপুট
Var = 10
B) C++ প্রোগ্রাম :প্রারম্ভিকতার সাথে গ্লোবাল ভেরিয়েবল পুনরায় ঘোষণা করা
#include <iostream> using namespace std; int var; int var=10; int main(){ cout<<"Var = "<<var; return 0; }
আউটপুট
main.cpp:7:9: error: redeclaration of ‘int var’ int var;
ফলাফল :-সি গ্লোবাল ভেরিয়েবলের পুনরায় ঘোষণার অনুমতি দেয় যদি এটি চালু না হয়। C++ প্রোগ্রাম সংকলনের সময় ব্যর্থ হয়।
4. ক) সি প্রোগ্রাম:প্রারম্ভিকতার সাথে গ্লোবাল ভেরিয়েবল পুনরায় ঘোষণা করা
#include <stdio.h> int var; int var=10; int main(){ printf("Var = %d",var); return 0; }
আউটপুট
error: redeclaration of ‘var’ with no linkage
B) C++ প্রোগ্রাম :প্রারম্ভিকতার সাথে স্থানীয় ভেরিয়েবল পুনরায় ঘোষণা করা
#include <iostream> using namespace std; int main(){ int var; int var=10; cout<<"Var = "<<var; return 0; }
আউটপুট
error: redeclaration of ‘int varএর পুনরায় ঘোষণা
ফলাফল :- C এবং C++ উভয়ই স্থানীয় ভেরিয়েবলের পুনঃঘোষণা অনুমোদন করে না এমনকি যদি এটি অপ্রচলিত হয়। উভয় প্রোগ্রামই সংকলনে ব্যর্থ হয়েছে