कॉन्स्ट और स्टेटिक C और C ++ दोनों में ऑर्थोगोनल कॉन्सेप्ट हैं।
constकीवर्ड संकलक बताता है किसी भी अभिव्यक्ति की lvalue के रूप में प्रदर्शित होने से चर अस्वीकृत करने के लिए - अनिवार्य रूप से यह केवल पढ़ने के लिए बना रही है।
C में, staticकीवर्ड के उपयोग के आधार पर इसके कई उपयोग हैं। जब किसी फ़ंक्शन के वेरिएबल पर लागू किया जाता है, तो यह इंगित करता है कि वेरिएबल किसी फ़ंक्शन के स्थानीय दायरे में संग्रहीत नहीं है, लेकिन इसके इनवोकेशन पर पहुंच योग्य है। जब एक वैश्विक चर या फ़ंक्शन पर लागू किया जाता है, तो यह केवल एक विशेष फ़ाइल के लिए सुलभ हो जाता है - दूसरे शब्दों में, यह केवल संकलन इकाई (जब तक घोषित नहीं extern) के भीतर सुलभ है ।
C ++ में, staticकीवर्ड का उपयोग एक वर्ग परिभाषा के भीतर किया जा सकता है, प्रत्येक उदाहरण के लिए स्थानीय होने के बजाय, कक्षा के सभी उदाहरणों में साझा किए गए चर या कार्यों को करने के लिए। इसके अलावा, C ++ में एक स्थिर वर्ग फ़ंक्शन केवल उस वर्ग के स्थिर चर (या जिन कक्षाओं तक उसकी पहुंच है) तक पहुंच सकता है। अब, C ++ में constसदस्यों को संकलन इकाई में आंतरिक लिंकेज दिया जाता है जब तक कि उन्हें स्पष्ट रूप से घोषित नहीं किया जाता है extern- यह वह हो सकता है जो आप इसका उल्लेख कर रहे हैं। यह शीर्ष-समय स्थिरांक को हेडर फ़ाइलों के उपयोग के माध्यम से पूरे यूनिट में साझा करने की अनुमति देता है। हालांकि, ध्यान रखें कि सदस्य वास्तव में स्थिर नहीं हैं - बल्कि स्थिरांक को प्रत्येक स्थान पर संकलित किया जाता है, जहां इसे संदर्भित किया जाता है।