में स्टेटिक कार्य करता है और चर का उपयोग करने के लिए मैं एक सी कार्यक्रम का निर्माण करने के रूप में मैं देख रहा हूँ यह है मानक तरीका सीकारण सी
में, एक फ़ाइल में चर के लिए सीमित दायरे के रूप में static
कीवर्ड के उपयोग के बारे में चिंता करने के लिए:
- कार्य करता है और चर को परिभाषित सी फ़ाइलों का एक समूह है, संभवतः गुंजाइश
static
साथ सीमित कर दिया। - में एच फाइलों का एक समूह है जो अन्य सी फाइलों के उपयोग के लिए कार्यों और संभवतः संबंधित सी फ़ाइल के चर को घोषित करता है। निजी कार्यों और चर एच फाइल में प्रकाशित नहीं हैं।
- प्रत्येक सी फ़ाइल को एक फ़ाइल में अलग से संकलित किया गया है।
- सभी ओ फाइलें एक आवेदन फ़ाइल से जुड़ी हुई हैं।
मैं static
के रूप में एक gobal घोषित करने के लिए दो कारण देखते हैं, अगर चर ज फ़ाइल में प्रकाशित नहीं है वैसे भी:
- एक पठनीयता के लिए है। अपने आप सहित भविष्य के पाठकों को सूचित करें कि एक चर को किसी अन्य फ़ाइल में एक्सेस नहीं किया गया है।
- दूसरा दूसरा चर फ़ाइल को
extern
के रूप में पुनर्विक्रय करने से रोकने के लिए है। मुझे लगता है कि लिंकर एक चर को नापसंद करेगाextern
औरstatic
दोनों। (मैं एक फ़ाइलextern
के रूप में किसी अन्य के स्वामित्व एक चर redeclaring के विचार नापसंद करते हैं, यह ठीक बात है?)
किसी भी अन्य कारण?
static
फ़ंक्शंस के लिए चला जाता है। यदि प्रोटोटाइप एच फ़ाइल में प्रकाशित नहीं होता है, तो अन्य फाइलें फ़ंक्शन का उपयोग नहीं कर सकती हैं, तो इसे static
क्यों परिभाषित करें? मैं वही दो कारण देख सकता हूं, लेकिन नहीं।
छह साल बाद, अब मुझे पता है कि 'स्थैतिक' गुंजाइश को सीमित नहीं करता है, यह आंतरिक जुड़ाव देता है। यह समान है, यदि आप एक अनुवाद इकाई को एक दायरे के रूप में मानते हैं, लेकिन सही शब्द नहीं है। – Gauthier