यहां हम कुछ ऐसे प्रोग्राम देखेंगे जो C या C++ कंपाइलर में कंपाइल किए जाने पर अलग-अलग परिणाम देंगे। हम ऐसे कई प्रोग्राम ढूंढ सकते हैं, लेकिन यहां हम उनमें से कुछ पर चर्चा कर रहे हैं।
- C और C++ में, कैरेक्टर लिटरल्स को अलग तरीके से माना जाता है। C में, उन्हें int माना जाता है लेकिन C++ में, उन्हें कैरेक्टर माना जाता है। इसलिए यदि हम sizeof() ऑपरेटर का उपयोग करके आकार की जांच करते हैं, तो यह C में 4 और C++ में 1 लौटाएगा।
उदाहरण (C)
#include <stdio.h>
int main() {
printf("The character: %c, size(%d)", 'a', sizeof('a'));
}
आउटपुट (C)
The character: a, size(4)
उदाहरण (C++)
#include <iostream>
int main() {
printf("The character: %c, size(%d)", 'a', sizeof('a'));
}
आउटपुट (C++)
The character: a, size(1)
C में यदि हम स्ट्रक्चर का उपयोग करते हैं, तो हमें इसका उपयोग करते समय स्ट्रक्चर टैग का उपयोग करना होगा जब तक कि कुछ typedef उपयोग न किया जाए। लेकिन C++ में, हमें स्ट्रक्चर का उपयोग करने के लिए स्ट्रक्चर टैग की आवश्यकता नहीं है।
उदाहरण (C)
#include <stdio.h>
struct MyStruct {
int x;
char y;
};
int main() {
struct MyStruct st; // स्ट्रक्चर टैग मौजूद है
st.x = 10;
st.y = 'd';
printf("Struct (%d|%c)", st.x, st.y);
}
आउटपुट (C)
Struct (10|d)
उदाहरण (C++)
#include <iostream>
struct MyStruct {
int x;
char y;
};
int main() {
MyStruct st; // स्ट्रक्चर टैग मौजूद नहीं है
st.x = 10;
st.y = 'd';
printf("Struct (%d|%c)", st.x, st.y);
}
आउटपुट (C++)
Struct (10|d)
बूलियन प्रकार के डेटा का आकार C और C++ में अलग होता है।
उदाहरण (C)
#include <stdio.h>
int main() {
printf("Bool size: %d", sizeof(1 == 1));
}
आउटपुट (C)
Bool size: 4
उदाहरण (C++)
#include <iostream>
int main() {
printf("Bool size: %d", sizeof(1 == 1));
}
आउटपुट (C++)
Bool size: 1