C / C ++: ordem e alinhamento de campo de bits de força

Eu li que a ordem dos campos de bits dentro de 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 à medida que forem 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 foi os primeiros 3 bits no buffer, eMessage.type seguido. Se eu encontrar opções equivalentes de empacotamento de estruturas para vários compiladores, isso será multi-plataforma?

questionAnswers(6)

yourAnswerToTheQuestion