I was looking at a pic 10 include file (p32mk1024gpk064.h) and was wondering why they added a struct with a single element instead of an union between a struct and an uint_32.
typedef union {
struct {
uint32_t RB0:1;
uint32_t RB1:1;
uint32_t RB2:1;
uint32_t RB3:1;
uint32_t RB4:1;
uint32_t RB5:1;
uint32_t RB6:1;
uint32_t RB7:1;
uint32_t RB8:1;
uint32_t RB9:1;
uint32_t RB10:1;
uint32_t RB11:1;
uint32_t RB12:1;
uint32_t RB13:1;
uint32_t RB14:1;
uint32_t RB15:1;
};
struct {
uint32_t w:32;
};
} __PORTBbits_t;
VS
typedef union {
struct {
uint32_t RB0:1;
uint32_t RB1:1;
uint32_t RB2:1;
uint32_t RB3:1;
uint32_t RB4:1;
uint32_t RB5:1;
uint32_t RB6:1;
uint32_t RB7:1;
uint32_t RB8:1;
uint32_t RB9:1;
uint32_t RB10:1;
uint32_t RB11:1;
uint32_t RB12:1;
uint32_t RB13:1;
uint32_t RB14:1;
uint32_t RB15:1;
};
uint32_t w:32;
} __PORTBbits_t;
I tried compiling both version and they both work, Idk what's the point of the second struct
There's no difference. They are functionally the same.