मैं एक सी नौसिखिया हूं और मैं कोड :: ब्लॉक के साथ एक कंसोल एप्लिकेशन लिखने की कोशिश कर रहा था। यहाँ (सरलीकृत) कोड है: main.c:सी में कई परिभाषाओं को कैसे रोकें?
#include <stdio.h>
#include <stdlib.h>
#include "test.c" // include not necessary for error in Code::Blocks
int main()
{
//t = test(); // calling of method also not necessary
return 0;
}
test.c:
void test() {}
जब मैं इस कार्यक्रम बनाने की कोशिश है, यह देता है निम्न त्रुटियों:
*path*\test.c|1|multiple definition of `_ test'| obj\Debug\main.o:*path*\test.c|1|first defined here|
कोई तरीका नहीं है कि मैं परीक्षण को परिभाषित कर रहा हूं (हालांकि मुझे नहीं पता कि अंडरस्कोर कहां से आ रहा है) और ऐसा लगता है कि परिभाषा किसी भी तरह से दो बार शामिल है। यह सब कोड है।
मैंने यह अस्वीकार कर दिया है कि यह त्रुटि अन्य कार्यों या फ़ाइलों को परीक्षण या test.c. कहलाते हुए कुछ नामकरण संघर्ष के कारण है। ध्यान दें कि एकाधिक और पहली परिभाषा एक ही फ़ाइल में एक ही पंक्ति में हैं।
क्या किसी को पता है कि इसका क्या कारण है और मैं इसके बारे में क्या कर सकता हूं? धन्यवाद!
_TEST.H_ जैसे नाम अंडरस्कोर से शुरू होते हैं और पूंजी पत्र सी उपयोगकर्ता कोड में अवैध होते हैं - वे कंपाइलर कार्यान्वयनकर्ताओं के लिए आरक्षित हैं। –
आपको हेडर फ़ाइल में परीक्षण() को पैरामीटर के बारे में जानकारी प्रदान करनी चाहिए, यानी शून्य परीक्षण(); -> शून्य परीक्षण (शून्य); – aib
मैंने अभी प्रश्न में सुझाए गए इंटरफेस को लिया है, लेकिन आप सही हैं: मैं अपना जवाब अपडेट करता हूं। • पहली बार जब test.c • दूसरी बार ही संकलन, जब main.c वाले हैं, जिसमें test.c source.' और संकलन: – mouviciel