2010-02-09 12 views
5

संभव डुप्लिकेट:
Static variableसी में किसी अन्य फ़ाइल से स्थिर चर का उपयोग कैसे करें?

कैसे सी में किसी अन्य फ़ाइल से एक स्थिर चर का उपयोग करने की? एक स्टेटिक चर के रूप में एक फ़ाइल गुंजाइश है, मुझे लगता है कि हम फ़ाइल के बाहर इसे एक्सेस करने का कोई तरीका नहीं है। लेकिन फिर भी मुझे लगता है कि ऐसा करने के लिए कुछ चाल या तरीका हो सकता है।

+4

आपको ऐसा क्यों लगता है कि आप ऐसा करना चाहते हैं? –

+0

क्या @Neil ने कहा, और यह एक डुप्लिकेट है: http://stackoverflow.com/questions/1973162 –

उत्तर

3

अपनी घोषणा में extern कीवर्ड का उपयोग यह निर्दिष्ट करने के लिए करें कि चर किसी अन्य फ़ाइल (बाहरी लिंकेज) से आता है। स्थिर कीवर्ड को अपनी मूल परिभाषा में छोड़ दें।

बाहरी बनाम आंतरिक लिंकेज चीज़ in this article समझाया गया है।

+1

उम्म। क्या? एक वेरिएबल जिसमें आंतरिक और बाहरी दोनों लिंक हैं? –

+0

मैंने घोषणापत्र बनाम परिभाषा भाग को स्पष्ट किया। – Thorsten79

+0

अब आपका जवाब तकनीकी रूप से सही है, लेकिन दुर्भाग्यवश, प्रश्न का उत्तर नहीं देता है। प्रश्न खुद ही अच्छा नहीं है। –

1

आप केवल अप्रत्यक्ष रूप से ऐसा कर सकते हैं, उदा। यदि स्थैतिक चर वाली फ़ाइल के दायरे में कोई फ़ंक्शन आपको इसके लिए एक पॉइंटर पास करता है।

5

मुझे नहीं लगता कि एक आसान तरीका है। आप स्थिर चर के साथ फ़ाइल को बदल सकते हैं, तो आप की तरह कुछ कर सकते हैं:

static int hiddenVar; // The static var you want to get at 

// A new function you write 
int * getHiddenVar() { 
    return &hiddenVar; 
} 

लेकिन निश्चित रूप से आप फ़ाइल बदल सकते हैं, तो आप सिर्फ स्थिर कीवर्ड छोड़ देगी।

इसके अलावा, मुझे संदेह है कि इससे मदद मिलती है, लेकिन मुझे फ्रीबीएसडी में कर्नेल मॉड्यूल लिखते समय ऐसा कुछ करना पड़ा। मैंने एक चाल का उपयोग किया जहां मैंने एक स्थिर कार्य के पते को खोजने के लिए कर्नेल के लिंकर फ़ंक्शंस को बुलाया। मुझे संदेह है कि आप इसे सामान्य सी प्रोग्राम में कर सकते हैं।

संबंधित मुद्दे