我是位域概念的新手。我正在尝试访问结构中的元素,但它显示了aa=v
这样的错误。
error: incompatible types when assigning to type ‘cc’ from type ‘long unsigned int ’
如果我在aa= (cc)v;
error: conversion to non-scalar type requested
我尝试通过声明指向结构的指针来访问元素。在这种情况下我做得很好,但在这种情况下,我没有声明指向结构的指针,我必须访问元素。我该如何克服这个错误。
感谢您提前提供任何帮助
#include<stdio.h>
typedef struct
{
unsigned long a:8;
unsigned long b:8;
unsigned long c:8;
unsigned long d:8;
}cc;
int main()
{
cc aa ;
unsigned long v = 1458;
printf("%d\n",sizeof(aa));
aa=v; // aa= (cc)v;
printf("%d %d %d %d\n", aa.a,aa.b,aa.c,aa.d);
return 0;
}