#include <stdio.h> #include <stdint.h> typedef struct { unsigned short reg; } ConfigRegister; typedef union { unsigned short value; struct { uint8_t enable : 1; uint8_t mode : 1; uint8_t priority : 2; uint16_t reserved : 12; } bits; } TRegister; int validate_config(ConfigRegister *cfg) { // Write logic using pointer access TRegister reg; reg.value = cfg->reg; if(reg.bits.enable == 0) { return 0; } if(reg.bits.mode == 3) { return 0; } if(reg.bits.reserved != 0){ return 0; } return 1; } int main() { ConfigRegister cfg; scanf("%hx", &cfg.reg); int result = validate_config(&cfg); printf("%d", result); return 0; }
Test Cases
Test Results
Input
0005
Expected Output
1