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.