यहां हम देखेंगे कि C++ में volatile qualifier का क्या अर्थ है। जब हम इसे घोषित करते हैं तो अस्थिर क्वालीफायर एक चर पर लागू होता है। इसका उपयोग कंपाइलर को यह बताने के लिए किया जाता है कि मान किसी भी समय बदल सकता है। ये कुछ अस्थिर गुण हैं।
- अस्थिर कीवर्ड मेमोरी असाइनमेंट को नहीं हटा सकता
- यह रजिस्टर में वेरिएबल को कैश नहीं कर सकता।
- असाइनमेंट के क्रम में मान नहीं बदल सकता।
आइए देखें, हम कैसे वाष्पशील कीवर्ड का उपयोग कर सकते हैं।
volatile int a; int volatile a;
यहाँ ये दोनों घोषणाएँ सही हैं। अन्य डेटाटाइप की तरह, हम अस्थिर पॉइंटर्स, संरचनाओं, यूनियनों आदि का उपयोग कर सकते हैं। अस्थिर संरचनाएं और संघ स्वयं अस्थिर हो सकते हैं, और उनके सदस्य चर भी प्रकार के अस्थिर हो सकते हैं।
विभिन्न स्थानों में वाष्पशील का उपयोग किया जाता है। मेमोरी मैप किए गए परिधीय रजिस्टरों के लिए, कुछ वैश्विक चर, जिन्हें कुछ अन्य कार्यों या इंटरप्ट सर्विस रूटीन द्वारा एक्सेस किया जाता है, या कुछ बहु-थ्रेडेड अनुप्रयोगों में, अस्थिर का उपयोग किया जा सकता है।
उदाहरण
int main (){ int value; value++; }i nt main (){ volatile int value; value++; }
कोड के दो ब्लॉक हैं। पहले ब्लॉक में वाष्पशील कीवर्ड मौजूद नहीं है। तो पहले मामले के लिए, चर को मेमोरी से सीपीयू रजिस्टर में कॉपी किया जाएगा, फिर संचालन किया जाता है। दूसरे मामले में अस्थिर मौजूद है। तो इस मामले में वेरिएबल को मेमोरी से रजिस्टरों में कॉपी नहीं किया जाएगा।