मेरी कोडसी चेतावनी परस्पर विरोधी प्रकार
void doc(){
//mycode
return;
}
मेरी चेतावनी
conflicting types for 'doc'
किसी को भी इसे हल कर सकते है।
मेरी कोडसी चेतावनी परस्पर विरोधी प्रकार
void doc(){
//mycode
return;
}
मेरी चेतावनी
conflicting types for 'doc'
किसी को भी इसे हल कर सकते है।
यह स्पष्ट रूप से आपका पूरा कोड नहीं है।
हालांकि, उस त्रुटि का अर्थ है कि doc
(शायद एक वैश्विक चर? हेडर फ़ाइल में कुछ?) के लिए एक और घोषणा है जो void
फ़ंक्शन नहीं है जो कोई पैरामीटर नहीं लेता है।
उन्होंने अपनी परिभाषा –
हां, अच्छी पकड़ से पहले भी फ़ंक्शन का उपयोग किया होगा। फिर भी, पूरा कोड नहीं है। :) –
यू कुछ अन्य प्रकार/हस्ताक्षर के साथ यह घोषित कर दिया और कुछ अन्य प्रकार/हस्ताक्षर के साथ परिभाषित किया है ..
तरह
int doc();
void doc()
{
}
यू यह चेतावनी दे देंगे।
"डॉक्टर" शायद पहले से ही एक अलग प्रकार के साथ घोषित किया गया है ... आपको पिछली घोषणा को खोजने का प्रयास करना चाहिए!
सी में, यदि आपके पास कॉल करने पर फ़ंक्शन के लिए प्रोटोटाइप नहीं है, तो इसे int
वापस करने और पैरामीटर की एक निर्दिष्ट संख्या लेने के लिए माना जाता है। फिर, जब आप बाद में अपने फ़ंक्शन को void
लौटने के रूप में परिभाषित करते हैं और कोई पैरामीटर नहीं लेते हैं, तो संकलक इसे एक संघर्ष के रूप में देखता है।
अपने कोड की जटिलता के आधार पर, आप इसके उपयोग से पहले समारोह की परिभाषा जाने के रूप में के रूप में सरल कुछ कर सकते हैं, या एक हेडर फाइल में समारोह घोषणा जोड़ने और इसे शामिल हैं।
किसी भी मामले में, इसका प्रभाव होने से पहले फ़ंक्शन प्रोटोटाइप उपलब्ध कराने के लिए शुद्ध प्रभाव होना चाहिए।
तुम से पहले समारोह उपयोग
void doc(void);
जोड़ते हैं तो आपको एक प्रोटोटाइप दायरे में दिखाई दे रहा है, और अपने चेतावनी दूर जाना होगा।
मुझे लगता है कि यह आपकी चेतावनी के लिए सबसे अधिक संभावित कारण है। आपके कोड में doc
की एक स्पष्ट असंगत घोषणा हो सकती है, लेकिन हम यह नहीं बता सकते कि आपने पूर्ण कोड पोस्ट नहीं किया है।
आप या तो doc
से पहले घोषित कर दिया, या अघोषित doc
को फोन किया और इस प्रकार doc
उस कॉल से के लिए एक संभावित पैरामीटर घोषणा निकालना संकलक के लिए मजबूर कर दिया है। अब, आपके द्वारा उद्धृत doc
की परिभाषा उस पिछली घोषणा से अलग है (या तो संकलक द्वारा स्पष्ट या कटौती), जिसे "संघर्ष" के रूप में रिपोर्ट किया जाता है।
सुनिश्चित करें कि आपने अपने कोड में कहीं भी दस्तावेज़ का उपयोग नहीं किया है! मुझे लगता है कि केवल आपको परेशानी होती है!
अपनी प्रोग्राम फ़ाइल में अपने मुख्य फ़ंक्शन से पहले अपने दस्तावेज़ फ़ंक्शन को लिखने का प्रयास करें।
धन्यवाद! यह समझाने की देखभाल क्यों है? – user1072706
यह फ़ंक्शन की अगली घोषणा का प्रतिनिधित्व करता है और फ़ंक्शन का प्रोटोटाइप है। – Das
उपयोग के ऊपर दिए गए फ़ंक्शन को घोषित करने के लिए इसे हल किया गया।
उदाहरण:
void recordAudio(){ //declaration
doStuff();
}
void initialise(){
recordAudio(); // usage
}
के रूप में आप ऊपर देख सकते हैं, recordAudio()
के उपयोग जहां प्रयोग किया जाता है से ऊपर है।
क्या आप इस – nullpointer
@nullpointer पर कोड जोड़ सकते हैं मैंने एक उदाहरण के साथ अपना जवाब अपडेट किया है –
आपके पास शायद कहीं और परिभाषित एक और 'डॉक्टर' है, अपनी शामिलियों की जांच करें, त्रुटि संदेश आपको बताएगा कि विवादित घोषणा भी कहां है। – falstro