La plupart du temps, sans doute, mais ne pas parier la ferme sur elle, parce que si vous vous trompez, vous perdez beaucoup.
Si vous avez vraiment, vraiment besoin d'avoir à l'identique des informations binaires, vous aurez besoin de créer bitfields avec des masques de bits - par exemple, vous utiliser un unsigned short (16 bits) pour le Message, puis faire des choses comme versionMask = 0xE000 pour représenter les trois plus grands bits.
Il y a un problème similaire avec alignement à l'intérieur des structures. Par exemple, Sparc, PowerPC, et 680x0 Processeurs sont tous les big-endian, et de la politique par défaut pour Sparc, PowerPC compilateurs est d'aligner les membres de la structure sur 4 octets limites. Cependant, un compilateur, j'ai utilisé pour 680x0 seulement alignés sur 2 octets limites - et il n'y a pas d'option pour modifier l'alignement!
Donc, pour certaines structures, les tailles sur Sparc et PowerPC sont identiques, mais de plus petite taille sur 680x0, et certains membres sont dans différents décalages de mémoire au sein de la structure.
C'était un problème avec un projet, j'ai travaillé sur, car un serveur de processus en cours d'exécution sur Sparc serait requête d'un client et de trouver qu'il était big-endian, et suppose qu'il pourrait tout simplement couler binaire des structures sur le réseau et que le client pourrait faire face. Et qui a bien fonctionné sur PowerPC clients, et s'est écrasé grand-temps sur 680x0 clients. Je n'ai pas écrit le code, et il a fallu un certain temps pour trouver le problème. Mais il était facile de fixer une fois que j'ai fait.