निम्नलिखित कोड को देखते हुए:एक अनुक्रम बिंदु के भीतर अस्थिर-योग्य प्रकार के साथ एक से अधिक पढ़ने की पहुंच क्यों नहीं होगी?
static volatile float32_t tst_mtr_dutycycle;
static volatile uint8_t tst_mtr_direction;
static volatile uint32_t tst_mtr_update;
void TST_MTR_Task(void)
{
if (tst_mtr_update == 1U)
{
tst_mtr_update = 0;
MTR_SetDC(tst_mtr_dutycycle, tst_mtr_direction);
}
}
मैं मिश्रा सी 2012 नियम 13.2 के साथ समस्याओं मिल गया और मैं कुछ शोध करने का फैसला किया। मैं यहां पाया (http://archive.redlizards.com/docs/misrac2012-datasheet.pdf) कि:
वहाँ एक अनुक्रम अंक के भीतर अस्थिर योग्य प्रकार के साथ एक से अधिक पढ़ने के लिए पहुंच होगी
यहाँ बात यह है कि मैं स्वर्ग है ' एक उदाहरण या स्पष्टीकरण खोजने में सक्षम नहीं है जो स्पष्ट करता है कि एक अनुक्रम बिंदु के भीतर अस्थिर-योग्य प्रकार के साथ एक से अधिक पढ़ने का उपयोग क्यों नहीं किया जाएगा।
मुझे उल्लंघन कोड के लिए समाधान खोजने की आवश्यकता है, लेकिन मुझे वास्तव में यह स्पष्ट नहीं है कि क्या करना है।
मुझे पता है कि एक अनुक्रम बिंदु के भीतर अस्थिर-योग्य प्रकार के साथ एक से अधिक पढ़ने की पहुंच नहीं होगी। सवाल यह है, क्यों? और मुझे यह जानने की जरूरत है कि समाधान को कार्यान्वित करने और यहां सभी को समझाने के लिए क्यों मैं कोड बदल रहा हूं।
सम्मान।
बिल्कुल सही !! धन्यवाद! यह उत्तर मुझे अन्य मुद्दों के साथ भी मदद कर सकता है। मैं नियम के साइड इफेक्ट्स हिस्से को याद कर रहा था। – m4l490n
ऐसा कुछ है जो मेरे लिए बहुत स्पष्ट नहीं है। एक अस्थिर चर एक साइड इफेक्ट क्यों पढ़ रहा है? – m4l490n
@ m4l490n क्योंकि यह वही है जो 'अस्थिर' है - यह निर्दिष्ट करता है कि लिखता है और पढ़ता है कैश या पुन: व्यवस्थित नहीं किया जा सकता है।एक उदाहरण एक हार्डवेयर रजिस्टर होगा, जहां पढ़ना लगातार पढ़ने पर विभिन्न मूल्यों को वापस कर सकता है, और इसके परिणामस्वरूप मनमानी कार्रवाई होती है। – ecatmur