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