मैं कुछ शोध कर रहा हूं और मुझे कोई अच्छा जवाब नहीं मिला है और मैं कुछ बेहतर समझने की उम्मीद कर रहा हूं। मुझे पता है कि volatile
का उपयोग कैसे करें, लेकिन इसके बारे में एक प्रश्न है कि जब यह प्लेसमेंट परिवर्तनीय घोषणाओं में भिन्न होता है, उदाहरण के लिए।सी ++ वैरिएबल टाइप क्वांटिफायर स्थिति वैरिएबल डेफिनिशन
volatile int * ptr;
पूर्णांक volatile
है की ओर इशारा किया और जब पढ़ने/इस स्मृति स्थान के लिए लिख हमेशा स्मृति स्थान में जाते हैं।
int * volatile ptr;
सूचक मान के volatile
है और जब पढ़ने/इस स्मृति स्थान के लिए लिख हमेशा स्मृति स्थान में जाते हैं।
यह एक सूक्ष्म अंतर है, लेकिन जो मैं अंतर बता सकता हूं उससे कुछ ऐसा है।
volatile int * foo;
int * volatile bar;
volatile int testInt = 5;
------------------------
| 0x020 | - 0x000 (foo), memory location 0x000 can be cached.
------------------------
| 0x020 | - 0x010 (bar), memory location 0x010 can't be cached.
------------------------
| 5 | - 0x020 (testInt)
------------------------
मेरा प्रश्न यह है कि अगर अस्थिर क्वांटिफ़ायर पॉइंटर प्रकार पर नहीं है, उदाहरण के लिए।
volatile int foo = 5;
int volatile bar = 5;
------------------------
| 5 | - 0x000 (foo), memory location 0x000 can't be cached.
------------------------
| 5 | - 0x004 (bar), memory location 0x004 can't be cached.
------------------------
इन दो घोषणाओं को गैर-सूचक घोषणाओं के लिए एक ही चीज़ नहीं है?
हाँ वे एक ही बात करते हैं पर। –
क्या आपका प्रश्न अभी है - 'int volatile' के समान प्रकार 'अस्थिर int' है? – Barry