এখানে আমরা C এবং C++ এর মধ্যে কিছু অসঙ্গতি দেখতে পাব। কিছু C কোড যা C কম্পাইলার ব্যবহার করে কম্পাইল করা যায়, কিন্তু C++ কম্পাইলারে কম্পাইল করে না। এবং ত্রুটি ফেরত দেয়।
- আমরা একটি সিনট্যাক্স ব্যবহার করে ফাংশনকে সংজ্ঞায়িত করতে পারি, যেটি ঐচ্ছিকভাবে আর্গুমেন্ট তালিকার পরে আর্গুমেন্টের প্রকারগুলি নির্দিষ্ট করে৷
উদাহরণ
#include-এ বৈধ নয়void my_function(x, y)int x;int y; { // C++ printf("x =%d, y =%d", x, y);} int main() { my_function(10, 20);}
আউটপুট
x =10, y =20
আউটপুট
C++ এ ত্রুটি :- x এবং y এই সুযোগে ঘোষণা করা হয়নি
- C, বা C++ এর কিছু পুরানো সংস্করণে, ডিফল্ট ভেরিয়েবল টাইপ হল পূর্ণসংখ্যা। কিন্তু নতুন C++ এ, এটি একটি ত্রুটি তৈরি করবে।
উদাহরণ
#includemain() { const x =10; const y =20; printf("x =%d, y =%d", x, y);}
আউটপুট
x =10, y =20
আউটপুট
C++ এ ত্রুটি :- x একটি টাইপের নাম দেয় না একটি প্রকারের নাম দেয় না
- সি-তে, বহিরাগত কীওয়ার্ড ব্যবহার না করে বহুবার গ্লোবাল ডেটা অবজেক্ট ঘোষণা করা যেতে পারে। সি কম্পাইলার একাধিক ঘোষণার জন্য একবার বিবেচনা করে।
উদাহরণ
#includeint x;int x;int main() { x =10; printf("x =%d", x);}
আউটপুট
x =10
আউটপুট
C++ এ ত্রুটি :- int x এর পুনঃসংজ্ঞা
- C-তে, আমরা void pointer ব্যবহার করতে পারি একটি অ্যাসাইনমেন্টের ডান হাতের অপারেটর হিসাবে বা যেকোনো পয়েন্টার প্রকারের ভেরিয়েবলকে আরম্ভ করতে।
উদাহরণ
#include#include void my_function(int n) { int*ptr =malloc(n* sizeof(int)); //অস্পষ্টভাবে void* কে int* printf এ রূপান্তর করুন আউটপুট
অ্যারে তৈরি করা হয়েছে। আকার:10আউটপুট
C++ এ ত্রুটি :- void*-এর int*-এ অবৈধ রূপান্তর
- সি-তে, আর্গুমেন্টের ধরন নির্দিষ্ট না থাকলে, আমরা একাধিক আর্গুমেন্ট পাস করতে পারি।
উদাহরণ
#includevoid my_function() { printf("Inside my_function");}main() { my_function(10, "Hello", 2.568, 'a');} আউটপুট
আমার_ফাংশনের ভিতরেআউটপুট
C++ এ ত্রুটি :- 'void my_function()' ফাংশনের জন্য অনেক বেশি আর্গুমেন্ট