कृपया ध्यान दें कि यहां अधिकांश उत्तर पोर्टेबल नहीं हैं, क्योंकि कंपाइलर आज संकलन समय (अनुकूलन पर निर्भर करता है) में उन उत्तरों का मूल्यांकन करेंगे और एक विशिष्ट एंडियननेस के आधार पर एक विशिष्ट मान लौटाएंगे, जबकि वास्तविक मशीन एंडियननेस अलग हो सकती है। जिन मूल्यों पर एंडियननेस का परीक्षण किया गया है, वे सिस्टम मेमोरी तक कभी नहीं पहुंचेंगे, इसलिए वास्तविक निष्पादित कोड वास्तविक एंडियननेस की परवाह किए बिना एक ही परिणाम लौटाएगा।
उदाहरण के लिए , ARM Cortex-M3 में कार्यान्वित एंडियननेस एक स्थिति बिट AIRCR.ENDIANNESS में प्रदर्शित होगी और संकलनकर्ता संकलन समय में इस मूल्य को नहीं जान सकता है।
यहां दिए गए कुछ जवाबों के लिए संकलन आउटपुट:
इस उत्तर के लिए https://godbolt.org/z/GJGNE2 ,
https://godbolt.org/z/Yv-pyJ के लिए इस उत्तर के , और इसी तरह।
इसे हल करने के लिए आपको volatile
क्वालीफायर का उपयोग करना होगा । Yogeesh H T
आज के वास्तविक जीवन के उपयोग के लिए इसका उत्तर सबसे नज़दीकी है, लेकिन चूंकि Christoph
अधिक व्यापक समाधान का सुझाव है, इसलिए उसके उत्तर के लिए थोड़ा सा सुधार उत्तर को पूर्ण कर देगा, बस volatile
संघ घोषणा में जोड़ें static const volatile union
:।
यह मेमोरी से स्टोर करने और पढ़ने का आश्वासन देगा, जिसे एंडियननेस निर्धारित करने के लिए आवश्यक है।