मैं निम्नलिखित कोड में आया, और कहा गया था कि इसका मतलब है कि COL_8888_RED
"एंडियन स्वतंत्र" है। क्यूं कर? इस एंडियन स्वतंत्र क्या बनाता है? (मैं मूल सांकेतिक शब्दों में बदलनेवाला कहा है, लेकिन वे मेरे पास वापस नहीं मिल रहे हैं ... बिल्ली शायद वे नहीं जानते या तो।)इस कोड को "एंडियन स्वतंत्र" क्या बनाता है?
union _colours {
uint8 c[3][4];
uint32 alignment;
};
static const union _colours col_8888 = {
{ /* B G R A in memory */
{ 0x00, 0x00, 0xFF, 0xFF, }, /* red */
{ 0x00, 0xFF, 0x00, 0xFF, }, /* green */
{ 0xFF, 0x00, 0x00, 0xFF, }, /* blue */
}
};
#define COL_8888_RED *((uint32 *)&col_8888.c[0])
एंडियन स्वतंत्र क्या हो सकता है सुरक्षित नहीं है, क्योंकि कुछ अलग हार्डवेयर एआरजीबी, बीजीआरए, आरजीबीए, इतने आगे और आगे चुन सकते हैं ... –
@ डैश-टॉम-बैंग, वास्तव में अन्य प्रकार के डिस्प्ले को लाल, विभिन्न बाइट ऑर्डर में परिभाषित करने के लिए हरा और नीला। और इस उदाहरण में 'col_8888' यूनियन एक विशिष्ट प्रकार के डिस्प्ले के लिए लाल, हरा और नीला परिभाषित करता है, और इस प्रकार एक विशिष्ट बाइट ऑर्डर को परिभाषित करता है - इसका उपयोग * केवल * उस प्रकार के डिस्प्ले को लिखने के लिए किया जाता है। अन्य डिस्प्ले प्रकारों को लाल, हरे और नीले रंग की विभिन्न परिभाषाओं की आवश्यकता होगी। – BeeBand