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.