Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C और C++ के बीच असंगतताएं

यहां हम C और C++ के बीच कुछ असंगतताएं देखेंगे। कुछ C कोड जो C कंपाइलर का उपयोग करके कंपाइल हो सकते हैं लेकिन C++ कंपाइलर में कंपाइल नहीं होते और त्रुटि देते हैं।

  • हम फ़ंक्शन को एक सिंटैक्स का उपयोग करके परिभाषित कर सकते हैं जो आर्गुमेंट सूची के बाद आर्गुमेंट प्रकारों को वैकल्पिक रूप से निर्दिष्ट करता है।

उदाहरण

#include <stdio.h>
void my_function(x, y)
int x; int y; { // C++ में मान्य नहीं
    printf("x = %d, y = %d", x, y);
}
int main() {
    my_function(10, 20);
}

आउटपुट

x = 10, y = 20

आउटपुट (C++ त्रुटि)

Error in C++ :- x and y was not declared in this scope
  • C में, या C++ के कुछ पुराने संस्करणों में, डिफ़ॉल्ट वेरिएबल प्रकार पूर्णांक है। लेकिन नए C++ में यह त्रुटि उत्पन्न करेगा।

उदाहरण

#include <stdio.h>
int main() {
    const x = 10;
    const y = 20;
    printf("x = %d, y = %d", x, y);
}

आउटपुट

x = 10, y = 20

आउटपुट (C++ त्रुटि)

Error in C++ :- x does not name a type y does not name a type
  • C में, ग्लोबल डेटा ऑब्जेक्ट्स को extern कीवर्ड का उपयोग किए बिना कई बार घोषित किया जा सकता है। C कंपाइलर इसे एकाधिक घोषणाओं के लिए एक बार मानता है।

उदाहरण

#include <stdio.h>
int x;
int x;
int main() {
    x = 10;
    printf("x = %d", x);
}

आउटपुट

x = 10

आउटपुट (C++ त्रुटि)

Error in C++ :- Redefinition of int x
  • C में, हम असाइनमेंट के दाएं हाथ के ऑपरेटर के रूप में void पॉइंटर का उपयोग कर सकते हैं या किसी भी पॉइंटर प्रकार के वेरिएबल को आरंभ कर सकते हैं।

उदाहरण

#include <stdio.h>
#include <malloc.h>
void my_function(int n) {
    int* ptr = malloc(n * sizeof(int)); // void* को int* में निहित रूप से परिवर्तित करें
    printf("सरणी बनाई गई। आकार: %d", n);
}
int main() {
    my_function(10);
}

आउटपुट

सरणी बनाई गई। आकार: 10

आउटपुट (C++ त्रुटि)

Error in C++ :- Invalid conversion of void* to int*
  • C में यदि आर्गुमेंट प्रकार निर्दिष्ट नहीं है तो हम कई आर्गुमेंट्स पास कर सकते हैं।

उदाहरण

#include <stdio.h>
void my_function() {
    printf("my_function के अंदर");
}
int main() {
    my_function(10, "Hello", 2.568, 'a');
}

आउटपुट

my_function के अंदर

आउटपुट (C++ त्रुटि)

Error in C++ :- Too many arguments to function 'void my_function()'
  1. - C और C++ में स्ट्रक्चर के बीच अंतर

    यहां हम देखेंगे कि C में स्ट्रक्चर और C++ में स्ट्रक्चर के बीच क्या अंतर हैं। C++ स्ट्रक्चर ज्यादातर C++ में क्लासेस की तरह हैं। C स्ट्रक्चर में, सभी सदस्य पब्लिक होते हैं, लेकिन C++ में, वे डिफ़ॉल्ट रूप से प्राइवेट होते हैं। कुछ अन्य अंतर नीचे सूचीबद्ध हैं। C स्ट्रक्चर C++ स्ट्रक्चर C में स

  1. - C++ और C# में कौन तेज़ है?

    C++ एक मिडिल-लेवल भाषा है। इसे 1979 में Bjarne Stroustrup द्वारा विकसित किया गया था। यह C भाषा का केवल एक संवर्धन है और एक ऑब्जेक्ट-ओरिएंटेड भाषा है। C# एंडर्स हेजल्सबर्ग द्वारा विकसित एक आधुनिक और ऑब्जेक्ट-ओरिएंटेड भाषा है। यह .NET फ्रेमवर्क का एक हिस्सा है। इसे कॉमन लैंग्वेज इंफ्रास्ट्रक्चर (CLI)

  1. - C++ और C# में अंतर

    C++ एक स्टैटिकली-टाइप्ड, कंपाइल्ड, मल्टी-पैराडाइम भाषा है (प्रोसीजरल, OOP, जेनेरिक)। C# एक मैनेज्ड, ऑब्जेक्ट-ओरिएंटेड भाषा है जो .NET पर चलती है। मुख्य अंतर पहलूC++C# मेमोरी प्रबंधनमैनुअल (new/delete, स्मार्ट पॉइंटर्स)स्वचालित (गार्बेज कलेक्शन) प्लेटफॉर्मक्रॉस-प्लेटफॉर्म (नेटिव कंपाइलेशन)मुख्य