Como atribuir valor a uma estrutura com campos de bits?

Eu tenho uma estrutura com campos de bits (largura total de 32 bits) e eu tenho uma variável de 32 bits. Quando tento atribuir o valor da variável ao meu struct, recebo um erro:

erro: conversão de "uint32_t {int não assinado" para tipo não escalar "main () :: CPUID" solicitado.

struct CPUIDregs
    {
       uint32_t EAXBuf;
    };
CPUIDregs CPUIDregsoutput;   


int main () {

 struct CPUID          
    {
          uint32_t   Stepping         : 4;         
          uint32_t   Model            : 4;        
          uint32_t   FamilyID         : 4;        
          uint32_t   Type             : 2;        
          uint32_t   Reserved1        : 2;         
          uint32_t   ExtendedModel    : 4;         
          uint32_t   ExtendedFamilyID : 8;          
          uint32_t   Reserved2        : 4;          
    };

    CPUID CPUIDoutput = CPUIDregsoutput.EAXBuf;

Você tem alguma idéia de como fazê-lo no caminho mais curto? obrigado

P.S. É claro que tenho um valor mais apropriado de EAX em código real, mas acho que isso não afeta aqui.

questionAnswers(4)

yourAnswerToTheQuestion