typedef union {
struct {
uint16_t cnt : 15;
uint16_t flag : 1;
};
uint16_t itself;
} time_flag_u;
#include <stdio.h>
typedef unsigned int uint16_t;
typedef union {
struct {
uint16_t cnt : 15;
uint16_t flag : 1;
};
uint16_t itself;
} time_flag_u;
time_flag_u time;
int main()
{
time.cnt = 32767;
time.flag = 1;
printf("time.cnt = %d\n", time.cnt);
printf("time.flag = %d\n", time.flag);
printf("\n");
time.itself = 0;
printf("time.cnt = %d\n", time.cnt);
printf("time.flag = %d\n", time.flag);
return 0;
}
运行结果:
time.cnt = 32767
time.flag = 1
time.cnt = 0
time.flag = 0
C在线编译器