এখানে আমরা এমন কিছু প্রোগ্রাম দেখতে পাব যেগুলি 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