में बूल को परिभाषित किया गया है तो मुझे कुछ कोड के साथ समस्याएं हैं जिन्हें मैंने विरासत में मिला है। यह कोड सी-केवल पर्यावरण में ठीक से निर्माण कर रहा था, लेकिन अब मुझे इस कोड को कॉल करने के लिए C++ का उपयोग करने की आवश्यकता है। हैडर problem.h
शामिल हैं:जांचें कि मिश्रित सी/सी ++
#ifndef _BOOL
typedef unsigned char bool;
static const bool False = 0;
static const bool True = 1;
#endif
struct astruct
{
bool myvar;
/* and a bunch more */
}
जब मैं यह संकलन सी ++ कोड के रूप में, मैं error C2632: 'char' followed by 'bool' is illegal
मैं एक ही त्रुटि मिलती है अगर मैं extern "C" { ... }
में #include "problem.h"
(जो मुझे समझ नहीं आता लपेट, क्योंकि वहाँ होना चाहिए मिल जब सी के रूप में संकलन से कोई भी कीवर्ड bool
हो)
मैं #ifndef _BOOL
से #endif
को ब्लॉक को हटाने, और सी ++ के रूप में संकलन करने की कोशिश की, और मैं त्रुटियों मिल:
error C2061: C requires that a struct or union has at least one member
error C2061: syntax error: identifier 'bool'
मैं बस समझ में नहीं कैसे सी ++ संकलक bool
की एक नई परिभाषा के बारे में शिकायत कर रहा है, फिर भी जब मैं नई परिभाषा को हटा दें और सिर्फ bool
उपयोग करने के लिए चर निर्धारित करने की कोशिश, यह कुछ भी नहीं मिल रहा है ।
किसी भी मदद की बहुत सराहना की जाती है।
ध्यान दें कि 'बाहरी "सी" का मतलब "सी के रूप में संकलित नहीं है"। इसका मतलब है "सी लिंकेज के साथ संकलन"। अंदर कोड अभी भी सी ++ है, आपको बस कुछ भी परिभाषित करने की अनुमति नहीं है जिसे सी –