私はビットフィールドの概念が初めてです。構造内の要素にアクセスしようとしていますが、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;
}