Muhtemelen çoğu zaman, ama çiftlikte bahse girmeyin, çünkü yanılıyorsanız, büyük kaybedersiniz.
Gerçekten, gerçekten aynı ikili bilgiye ihtiyacınız varsa, bit maskeleri ile bit alanları oluşturmanız gerekir - örneğin, Mesaj için işaretsiz bir kısa (16 bit) kullanırsınız ve ardından en üstteki üç biti temsil etmek için versionMask = 0xE000 gibi şeyler yaparsınız.
Yapılar içinde hizalamayla ilgili benzer bir sorun var. Örneğin, Sparc, PowerPC ve 680x0 CPU'ların tümü büyüktür ve Sparc ve PowerPC derleyicileri için ortak varsayılan, yapı üyelerini 4 baytlık sınırlarda hizalamaktır. Ancak, 680x0 için kullandığım bir derleyici yalnızca 2 baytlık sınırlarla hizalandı - ve hizalamayı değiştirme seçeneği yoktu!
Dolayısıyla, bazı yapılar için Sparc ve PowerPC'deki boyutlar aynıdır, ancak 680x0'da daha küçüktür ve bazı üyeler yapı içinde farklı bellek uzaklıklarındadır.
Bu, üzerinde çalıştığım bir projeyle ilgili bir sorundu, çünkü Sparc üzerinde çalışan bir sunucu işlemi bir istemciyi sorgulayıp onun büyük bir endian olduğunu anlar ve ağdaki ikili yapıları fışkırtarak istemcinin başa çıkabileceğini varsayardı. Ve bu, PowerPC istemcilerinde iyi çalıştı ve 680x0 istemcilerde büyük ölçüde çöktü. Kodu ben yazmadım ve sorunu bulmam epey zaman aldı. Ama bir kez yaptıktan sonra düzeltmek kolaydı.