आज मेरे पास एक साक्षात्कार था, उन्होंने मुझसे पूछा कि क्या हम .c file
को स्रोत फ़ाइल में शामिल कर सकते हैं? मैंने कहा yes
। क्योंकि कुछ साल पहले मैंने कुछ परियोजनाओं में ऐसा देखा जहां उन्होंने .c file
शामिल किया है। लेकिन अभी मैं वही कोशिश कर रहा था।क्या हम .c फ़ाइल शामिल नहीं कर सकते?
abc.c
#include<stdio.h>
void abc()
{ printf("From ABC() \n"); }
main.c
#include<stdio.h>
#include "abc.c"
int main()
{ void abc();
return 0;
}
त्रुटि मिल रही है:
D:\Embedded\...\abc.c :- multiple definition of 'abc'
यह गलत कहां जा रहा है?
मैं एक abc.h फ़ाइल में लिखा था (abc.h के शरीर { extern void abc(void); }
है), और abc.c
में फ़ाइल शामिल (#include abc.c
बाहर टिप्पणी)। ठीक काम किया।
("ठीक काम किया" * * चेतावनी को सक्षम करने पर?) –
ठीक है, 'abc' की कई परिभाषाएं हैं, बस के रूप में संकलक का कहना है –
यह बहुत समय हो गया एक स्क्रिप्ट एक makefile लिखने के लिए आलसी जा रहा है, या कम से कम बहु-फ़ाइल कोड संकलित करने के लिए (आईडीई का उपयोग नहीं करते समय)। '.c' फ़ाइल को शामिल करते समय बस कल्पना करें कि उस फ़ाइल की पूरी सामग्री उस स्थिति पर होगी, और यह देखने के लिए कि आपको पुनः परिभाषाओं को समायोजित करने की आवश्यकता है। – phoxis