a specific problem की ऊँची एड़ी पर, एक स्व-उत्तर और टिप्पणियां, मैं समझना चाहता हूं कि यह उचित समाधान है, कामकाज/हैक या सिर्फ सादा गलत है। सूचक के लिए एक volatile
क्वालीफायर के साथसख्त सूचक एलियासिंग: एक 'अस्थिर' सूचक/संदर्भ के माध्यम से उपयोग है?
T x = ...;
if (*reinterpret_cast <volatile int*> (&x) == 0)
...
:
T x = ...;
if (*reinterpret_cast <int*> (&x) == 0)
...
के रूप में:
विशेष रूप से, मैं कोड दुबारा लिखा।
चलो बस मान लें कि T
int
के रूप में मेरी स्थिति में समझ में आता है। क्या यह volatile
संदर्भ के माध्यम से पहुंचने वाला सूचक संकेतक को हल करता है?
एक संदर्भ के लिए, विनिर्देश से:
[नोट: अस्थिर कार्यान्वयन के लिए एक संकेत वस्तु को शामिल आक्रामक अनुकूलन से बचने के लिए है, क्योंकि वस्तु के मूल्य एक द्वारा जांच भी तरह से बदला जा सकता है कार्यान्वयन। विस्तृत अर्थशास्त्र के लिए 1.9 देखें। सामान्य तौर पर, अस्थिर के शब्दों करना है C++ में एक ही हो के रूप में वे सी में कर रहे हैं - अंत टिप्पणी]
संपादित करें:
उपरोक्त कोड में कम से कम जीसीसी 4.5 पर मेरी समस्या का समाधान किया ।
यह प्रश्न ** ** स्पष्ट रूप से सी ++ विशिष्ट नहीं है। सी ++ - स्टाइल कास्ट सी को – curiousguy
@ क्रिएटिव्यू सी और सी ++ में अलग-अलग भाषा नियमों में फिर से लिखा जा सकता है हालांकि –
@MattMcNabb विभिन्न डब्लूआरटी 'अस्थिर' कैसे हैं? – curiousguy