ज्यादातर समय, शायद, लेकिन इस पर खेत को दांव न लगाएं, क्योंकि यदि आप गलत हैं, तो आप बड़ा खो देंगे।
यदि आप वास्तव में, वास्तव में समान बाइनरी जानकारी की आवश्यकता है, तो आपको बिटमास्क के साथ बिटफ़िल्ड बनाने की आवश्यकता होगी - जैसे आप संदेश के लिए एक अहस्ताक्षरित शॉर्ट (16 बिट) का उपयोग करते हैं, और फिर तीन टॉप बिट्स का प्रतिनिधित्व करने के लिए versionMask = 0xE000 जैसी चीजें बनाते हैं।
संरचना के भीतर संरेखण के साथ एक समान समस्या है। उदाहरण के लिए, स्पार्क, पावरपीसी और 680x0 सीपीयू सभी बड़े-एंडियन हैं, और स्पार्क और पावरपीसी कंपाइलर्स के लिए सामान्य डिफ़ॉल्ट 4-बाइट सीमाओं पर संरचना सदस्यों को संरेखित करना है। हालाँकि, एक संकलक मैंने 680x0 के लिए केवल 2-बाइट सीमाओं पर संरेखित किया था - और संरेखण को बदलने का कोई विकल्प नहीं था!
तो कुछ संरचनाओं के लिए, स्पार्क और पावरपीसी पर आकार समान हैं, लेकिन 680x0 पर छोटे हैं, और कुछ सदस्य संरचना के भीतर अलग-अलग मेमोरी ऑफ़सेट में हैं।
यह मेरे द्वारा काम की गई एक परियोजना के साथ एक समस्या थी, क्योंकि स्पार्क पर चल रही एक सर्वर प्रक्रिया एक ग्राहक को क्वेरी करेगी और पता चला कि यह बड़ा-एंडियन था, और यह मान लें कि यह नेटवर्क पर केवल द्विआधारी संरचना को निचोड़ सकता है और क्लाइंट सामना कर सकता है। और वह PowerPC क्लाइंट पर ठीक काम करता है, और 680x0 क्लाइंट पर बड़ा समय दुर्घटनाग्रस्त हो गया। मैंने कोड नहीं लिखा था, और समस्या को खोजने में काफी समय लगा। लेकिन एक बार करने के बाद इसे ठीक करना आसान था।