Eu li que a ordem dos campos de bits em uma estrutura é específica da plataforma. E se eu usar diferentes opções de empacotamento específicas do compilador, esses dados de garantia serão armazenados na ordem correta conforme são escritos? Por exemplo:
struct Message
{
unsigned int version : 3;
unsigned int type : 1;
unsigned int id : 5;
unsigned int data : 6;
} __attribute__ ((__packed__));
Em um processador Intel com o compilador GCC, os campos foram dispostos na memória conforme são mostrados. Message.version
foram os primeiros 3 bits no buffer e os Message.type
seguiram. Se eu encontrar opções de empacotamento de struct equivalentes para vários compiladores, isso será multiplataforma?