मैं 2 स्रोत फ़ाइलें (ग) का नाम दिया file1.c और file2.c जो उन दोनों के बीच एक चर, साझा करने के लिए की जरूरत है ताकि अगर एक स्रोत में चर अन्य sourced फ़ाइल में तो अद्यतन किया गया है, जब इस तक पहुँचने के लिए फ़ाइल परिवर्तनीय परिवर्तन देखा जाएगा।सी भाषा में कई स्रोत फ़ाइल के बीच एक चर और उसके मूल्य को साझा करने के लिए कैसे?
मैं क्या किया एक अन्य स्रोत कहा जाता file3.h (जो, ज़ाहिर है, file1.c file2.c में और file3.c में शामिल किया गया है) कहा जाता file3.c और हेडर फाइल फ़ाइल
in file3.c:
int myvariable = 0;
void update(){//updating the variable
myvariable++;
}
int get(){//getting the variable
return myvariable;
}
in file3.h:
extern int myvariable;
void update(void);
int get(void);
in file1.c:
.
.
.
printf("myvariable = %d",get());//print 0
update();
printf("myvariable = %d",get());//print 1
.
.
.
in file2.c:
.
.
.
printf("myvariable = %d",get());//print 0 but should print 1
.
.
.
बनाने है
लेकिन जब file1.c
अद्यतन में शुरू हो जाती है और myvariable परिवर्तन क्योंकि file2.c में file2.c
में नहीं देखा जा सकता अद्यतन किया जाता है जब प्राप्त शुरू हो जाती है और myvariable तो मुद्रित 0 मुद्रित किया गया है, केवल file2.c में अगर है समस्या है अद्यतन लागू किया गया है तो परिवर्तन देखा गया है। ऐसा लगता है चर की तरह साझा किया जाता है, लेकिन प्रत्येक स्रोत फ़ाइल के लिए एक अलग चर मूल्य/इस चर
निष्पादन योग्य बनाने के लिए आप इन फ़ाइलों को कैसे संकलित कर रहे हैं? File1.c और file2.c में – dpp
क्या आप "int myvariable" भी घोषित करते हैं? तुम्हे नही करना चाहिए। –
मैं उन्हें एक makefile जो मैं किसी के द्वारा दिया गया था के साथ संकलन और नहीं, मैं उन्हें किसी भी फाइल में नहीं घोषित करते हैं, केवल file3.c में और file3.h में के रूप में मैं लिखा था। –