Jak przypisać wartość do struktury z polami bitowymi?

Mam strukturę z polami bitowymi (całkowita szerokość 32 bitów) i mam 32-bitową zmienną. Gdy próbuję przypisać wartość zmiennej do mojej struktury, wystąpił błąd:

błąd: zażądano konwersji z „uint32_t {aka unsigned int} na nieskalarny typ„ main () :: CPUID ”.

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;

Czy masz jakiś pomysł, jak to zrobić w najkrótszy sposób? Dzięki

P.S. Oczywiście mam bardziej odpowiednią wartość EAX w prawdziwym kodzie, ale myślę, że nie ma to tutaj wpływu.

questionAnswers(4)

yourAnswerToTheQuestion