C से C++ को कॉल करें

C Se C Ko Kola Karem



प्रोग्रामिंग में, अक्सर C और C++ को एक साथ काम करने की आवश्यकता होती है, आमतौर पर पुराने कोड को अपडेट करते समय या विभिन्न भाषाओं में मॉड्यूल को संयोजित करते समय। C प्रोग्राम में C++ कोड का उपयोग करना प्रोग्रामर्स के लिए बहुत मददगार होता है, खासकर जब किसी पुराने सॉफ़्टवेयर को अपडेट करना हो या दोनों भाषाओं में लिखे गए हिस्सों को मिलाना हो। यह मार्गदर्शिका आपको दिखाएगी कि सरल और उपयोगी उदाहरणों के साथ C++ फ़ंक्शंस को C के साथ कैसे काम करना है। C प्रोग्राम से C++ पर कॉल करना मुश्किल लग सकता है, लेकिन यह आलेख चरण दर चरण सब कुछ समझाता है, इसलिए इसका अनुसरण करना और दोनों भाषाओं का एक साथ उपयोग शुरू करना आसान है। यह मार्गदर्शिका आपके प्रोग्रामिंग ज्ञान के स्तर की परवाह किए बिना आपकी परियोजनाओं के लिए सहायक है।

मूल बातें समझना

जब C से C++ फ़ंक्शंस को लागू करने और C++ ऑब्जेक्ट का उपयोग करने की बात आती है, तो कई प्रमुख तत्वों पर विचार करने की आवश्यकता होती है:

C में C++ कक्षाओं का संदर्भ देना

C में C++ कक्षाओं को संदर्भित करने के लिए एक सामान्य दृष्टिकोण में उन कक्षाओं के लिए पॉइंटर्स का उपयोग करना शामिल है जिन्हें C और C++ कोड के बीच पारित किया जा सकता है।







नाम मंगले

सी में पहचान को प्रभावित करने वाले नाम परिवर्तनों को रोकने के लिए, नामों को सुसंगत रखना महत्वपूर्ण है। यह सुनिश्चित करता है कि C फ़ंक्शंस और ऑब्जेक्ट्स को सही ढंग से पहचान और उपयोग कर सकता है।



दोहरे उद्देश्य के लिए हेडर फ़ाइल

एक हेडर फ़ाइल एक महत्वपूर्ण भूमिका निभाती है, जो C और C++ दोनों के लिए दोहरे उद्देश्य को पूरा करती है। इसमें क्लास परिभाषाएँ शामिल हैं जो C++ द्वारा पहचानी जा सकती हैं और C के लिए एक्सेसर फ़ंक्शंस को इनकैप्सुलेट करती हैं।



C से C++ कैसे कॉल करें

C++ फ़ंक्शंस को C से कॉल करने के लिए, बाहरी 'C' घोषणा महत्वपूर्ण है। जब इसे C++ फ़ंक्शंस पर लागू किया जाता है, तो यह सुनिश्चित करता है कि संकलन प्रक्रिया के दौरान फ़ंक्शन नामों को C शैली (C-लिंकेज का उपयोग करके) में व्यवहार किया जाता है। C, C++ सुविधाओं जैसे फ़ंक्शन ओवरलोडिंग और नेम मैंगलिंग को नहीं पहचानता जो C++ संकलन के दौरान हो सकता है। बाहरी 'सी' का उपयोग करते हुए, सी++ कंपाइलर फ़ंक्शन नाम उत्पन्न करता है जो सी सम्मेलनों का पालन करता है, जिससे निर्बाध अंतरसंचालनीयता की अनुमति मिलती है। यह घोषणा एक मानकीकृत इंटरफ़ेस प्रदान करती है, जो C कोड को नामकरण विरोध या संगतता समस्याओं का सामना किए बिना C++ फ़ंक्शंस तक पहुंचने और उपयोग करने में सक्षम बनाती है। C से C++ को कॉल करने के उदाहरण निम्नलिखित हैं। यह संयोजन कैसे कार्य करता है, इसे समझने के लिए, आइए उदाहरणों पर अधिक बारीकी से नज़र डालें।





व्यावहारिक उदाहरण: C से C++ कॉल करके एक वृत्त के क्षेत्रफल की गणना करें

इस सरल उदाहरण में, हम आपको मार्गदर्शन देंगे कि आप C में C++ फ़ंक्शन को कॉल करके किसी वृत्त के क्षेत्रफल की गणना कैसे कर सकते हैं। इस कोड में एक हेडर फ़ाइल (सर्कल.एच) और एक कार्यान्वयन फ़ाइल (सर्कल.सीपीपी) शामिल है। कोड के पहले भाग में हेडर फ़ाइल में बाहरी सी घोषणा शामिल है। निम्नलिखित कोड देखें. फिर, आइए कोड की प्रत्येक पंक्ति के बारे में अलग से विस्तार से बताएं:

#ifndef सर्कल_क्षेत्र
#सर्कल_क्षेत्र को परिभाषित करें

बाहरी 'सी' {

दोहरा कैलकुलेट_सीएरिया ( दोहरा रेड ) ;

}

#अगर अंत

दोहरा वृत्त_क्षेत्र ( दोहरा रेड ) {

वापस करना 3.14159 * रेड * रेड ;

}

आइए प्रत्येक भाग को तोड़ें:



#ifndef सर्कल_एरिया और #सर्कल_एरिया परिभाषित करें

ये पंक्तियाँ शामिल गार्ड का हिस्सा हैं जो यह सुनिश्चित करती हैं कि हेडर फ़ाइल की सामग्री को संकलन प्रक्रिया में केवल एक बार शामिल किया गया है। यदि CIRCLE_AREA परिभाषित नहीं है, तो अगला कोड शामिल किया जाएगा और CIRCLE_AREA परिभाषित किया जाएगा।

बाहरी 'सी'

इस सिंटैक्स का उपयोग यह घोषित करने के लिए किया जाता है कि निम्नलिखित फ़ंक्शन में C लिंकेज है। ऐसा कोड लिखते समय यह आवश्यक है जिसे C और C++ दोनों से कॉल किया जाएगा।

दोहरा कैलकुलेट_सीएरिया ( दोहरा रेड ) ;

यह पंक्ति 'कैलकुलेट_केरिया' नामक एक फ़ंक्शन घोषित करती है जो एक डबल तर्क (रेड) लेता है और एक डबल लौटाता है।

हेडर फ़ाइल में बाहरी 'सी' घोषणा कंपाइलर को फ़ंक्शन के लिए सी-स्टाइल लिंकेज का उपयोग करने के लिए सूचित करती है, जिससे यह सी कोड से कॉल करने योग्य हो जाता है। किसी वृत्त को 'circle.h' फ़ाइल में सहेजकर उसका क्षेत्रफल ज्ञात करने के लिए इस कोड का उपयोग करें। एक बार जब आप इस हेडर फ़ाइल को सहेज लेते हैं, तो आपको बस इसे C++ प्रोग्राम में हेडर फ़ाइल के रूप में शामिल करना होगा और वांछित फ़ंक्शन निष्पादित करना होगा। निम्नलिखित C कोड है जो एक वृत्त के क्षेत्रफल की गणना करता है। 'Main.c' फ़ाइल में C++ हेडर शामिल है और सीधे 'Circle_Carea' को कॉल करता है। निम्नलिखित कोड देखें:

#'सर्कल.एच' शामिल करें

int यहाँ मुख्य ( ) {

दोहरा राड = 5.0 ;

दोहरा क्षेत्र = वृत्त_क्षेत्र ( राड ) ;

printf ( 'वृत्त का क्षेत्रफल है: %2f \एन ' , क्षेत्र ) ;

वापस करना 0 ;

}

यह सरल सी प्रोग्राम 'सर्कल.एच' नामक पिछली फ़ाइल में परिभाषित फ़ंक्शन का उपयोग करके एक सर्कल के क्षेत्र की गणना और प्रिंट करता है। आइए कोड को तोड़ें:

#'सर्कल.एच' शामिल करें

इस पंक्ति में प्रोग्राम में 'circle.h' हेडर फ़ाइल की सामग्री शामिल है। हेडर फ़ाइल में संभवतः फ़ंक्शन घोषणाएँ या मैक्रोज़ शामिल हैं जो सर्कल गणना से संबंधित हैं।

int यहाँ मुख्य ( ) {

प्रोग्राम का निष्पादन मुख्य फ़ंक्शन, C प्रोग्राम के लिए प्रवेश बिंदु, से शुरू होता है।

दोहरा राड = 5.0 ;

डबल प्रकार के एक वैरिएबल रेड को 5.0 के मान के साथ घोषित और असाइन किया गया है। यह चर संभवतः वृत्त की त्रिज्या को दर्शाता है।

दोहरा क्षेत्र = वृत्त_क्षेत्र ( राड ) ;

'Circle_Carea' नामक फ़ंक्शन को त्रिज्या रेड्स के साथ एक तर्क के रूप में बुलाया जाता है और परिणाम चर क्षेत्र में संग्रहीत किया जाता है।

printf ( 'वृत्त का क्षेत्रफल है: %2f \एन ' , क्षेत्र ) ;

परिणाम 'प्रिंटफ' का उपयोग करके कंसोल पर मुद्रित किया जाता है। 'सर्कल का क्षेत्रफल है: %.2f\n' स्ट्रिंग क्षेत्र मान के लिए '%f' प्लेसहोल्डर के साथ एक प्रारूप स्ट्रिंग है। '%2f' में '.2' निर्दिष्ट करता है कि केवल दो दशमलव स्थान प्रदर्शित किए जाने चाहिए।

वापस करना 0 ;

मुख्य फ़ंक्शन 0 लौटाकर समाप्त होता है जो ऑपरेटिंग सिस्टम में एक सफल प्रोग्राम निष्पादन को इंगित करता है।

संक्षेप में, हेडर फ़ाइल सी लिंकेज के साथ एक फ़ंक्शन घोषित करती है, और कार्यान्वयन फ़ाइल एक सर्कल के क्षेत्र की गणना के लिए तर्क को परिभाषित करती है। यह पृथक्करण कोड को C और C++ दोनों प्रोग्रामों में उपयोग करने की अनुमति देता है। निम्नलिखित छवि में दिए गए कोड के आउटपुट को देखें:

जैसा कि आप आउटपुट में देख सकते हैं, वृत्त का परिकलित क्षेत्रफल 78.54 है जो क्षेत्रफल की गणना है = 3.14*5*5 = 78.54। क्षेत्र की गणना करने का कार्य 'circle.h' हेडर फ़ाइल में परिभाषित किया गया है जिसे बाहरी 'C' की मदद से C++ फ़ाइल में कॉल किया जाता है।

निष्कर्ष

हमने इस गाइड में आपके C प्रोग्राम में C++ को एकीकृत करने की प्रक्रिया के बारे में आपका मार्गदर्शन किया है। C++ कार्यक्षमता को C कोडबेस में एकीकृत करने के लिए पॉइंटर्स, नाम मैंगलिंग और दोहरे उद्देश्य वाली हेडर फ़ाइलों पर सावधानीपूर्वक विचार करने की आवश्यकता होती है। दिए गए उदाहरण इस एकीकरण को प्राप्त करने के लिए एक व्यावहारिक दृष्टिकोण दर्शाते हैं। अब जब आपने देख लिया है कि इन दो प्रोग्रामिंग भाषाओं को कैसे जोड़ा जाए, तो आपके पास अधिक टूल हैं। C के साथ काम करते समय C++ की शक्ति को अनलॉक करने से आपकी परियोजनाओं को कार्यक्षमता का एक नया स्तर मिल सकता है।