এখানে আমরা এমন কিছু প্রোগ্রাম দেখতে পাব যেগুলি C বা C++ কম্পাইলারে কম্পাইল করা হলে বিভিন্ন ফলাফল দেবে। আমরা এই ধরনের অনেক প্রোগ্রাম খুঁজে পেতে পারি, কিন্তু এখানে আমরা তাদের কিছু সম্পর্কে আলোচনা করছি।
- C এবং C++ এ, ক্যারেক্টার লিটারেলগুলিকে ভিন্নভাবে বিবেচনা করা হয়। C-তে, সেগুলোকে int হিসেবে ধরা হয় কিন্তু C++-এ সেগুলোকে অক্ষর হিসেবে ধরা হয়। তাই যদি আমরা sizeof() অপারেটর ব্যবহার করে আকার পরীক্ষা করি, তাহলে এটি C-তে 4 এবং C++-এ 1 ফেরত দেবে।
উদাহরণ
#include<stdio.h> int main() { printf("The character: %c, size(%d)", 'a', sizeof('a')); }
আউটপুট
The character: a, size(4)
উদাহরণ
#include<iostream.h> int main() { printf("The character: %c, size(%d)", 'a', sizeof('a')); }
আউটপুট (C++)
The character: a, size(1)
C-তে যদি আমরা struct ব্যবহার করি, তাহলে struct ট্যাগ ব্যবহার করতে হবে যখন আমরা এটি ব্যবহার করছি যতক্ষণ না কিছু typedef ব্যবহার করা হয়। কিন্তু C++ এ, স্ট্রাকচার ব্যবহার করার জন্য আমাদের struct ট্যাগ করার দরকার নেই।
উদাহরণ
#include<stdio.h> struct MyStruct{ int x; char y; }; int main() { struct MyStruct st; //struct tag is present st.x = 10; st.y = 'd'; printf("Struct (%d|%c)", st.x, st.y); }
আউটপুট (C)
Struct (10|d)
উদাহরণ
#include<iostream> struct MyStruct{ int x; char y; }; int main() { MyStruct st; //struct tag is not present st.x = 10; st.y = 'd'; printf("Struct (%d|%c)", st.x, st.y); }
আউটপুট (C++)
Struct (10|d)
বুলিয়ান টাইপ ডেটার আকার C এবং C++ এ ভিন্ন।
উদাহরণ
#include<stdio.h> int main() { printf("Bool size: %d", sizeof(1 == 1)); }
আউটপুট (C)
Bool size: 4
উদাহরণ
#include<iostream> int main() { printf("Bool size: %d", sizeof(1 == 1)); }
আউটপুট (C++)
Bool size: 1