Even I have updated to a union, i am able to access the member send data as hexa value. but not as a bit values.
Code:
#include<stdio.h>
typedef unsigned char byte;
typedef union _Range
{
byte byte1;
struct{
unsigned r1:1;
unsigned r2:1;
unsigned r3:1;
unsigned r4:1;
unsigned r5:1;
unsigned dummy3:3;
};
}rangeflags;
rangeflags Range;
int main()
{
Range.r1 = 1;
printf("%d%d%d%d%d\n",Range.r1,Range.r2,Range.r3,Range.r4,Range.r5);
Range.byte1 = 0x10;
printf("%d%d%d%d%d\n",Range.r1,Range.r2,Range.r3,Range.r4,Range.r5);
Range.byte1 = 0b00000000;
printf("%d%d%d%d%d\n",Range.r1,Range.r2,Range.r3,Range.r4,Range.r5);
}
Error at line Range.byte1 = 0b00000000;
error: invalid suffix "b00100000" or incompatible types in assignment