এখানে আমরা এমন কিছু প্রোগ্রাম দেখতে পাব যেগুলি 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')); }
আউটপুট(C)
The character: a, size(4)
সি.
এর জন্যউদাহরণ
#include<stdio.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)
C++ এর জন্য।
উদাহরণ
#include<stdio.h> 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
C++ এর জন্য।
উদাহরণ
#include<stdio.h> int main() { printf("Bool size: %d", sizeof(1 == 1)); }
আউটপুট(C++)
Bool size: 1