#include <stdio.h>
typedef unsigned long int uint32_t;
typedef union {
struct
{
unsigned char bit1 : 1;
unsigned char bit2 : 1;
unsigned char two_bits : 2;
unsigned char four_bits : 4;
};
uint32_t raw;
} Test;
int main(void) {
Test test;
printf( "Sizeof( test ) : %d\n", sizeof(test
) ); test.raw = 0;
printf( "Raw : %d\n", test.
raw ); test.bit1 = 1;
test.two_bits = 2;
printf( "Raw : %d\n", test.
raw ); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IHVpbnQzMl90OwoKdHlwZWRlZiB1bmlvbiB7CglzdHJ1Y3QKCXsKICAgIAl1bnNpZ25lZCBjaGFyIGJpdDEgOiAxOwogICAgCXVuc2lnbmVkIGNoYXIgYml0MiA6IDE7CgkgICAgdW5zaWduZWQgY2hhciB0d29fYml0cyA6IDI7CiAgICAJdW5zaWduZWQgY2hhciBmb3VyX2JpdHMgOiA0OwoJfTsKCXVpbnQzMl90IHJhdzsKfSBUZXN0OwoKaW50IG1haW4odm9pZCkgewoJVGVzdCB0ZXN0OwoJcHJpbnRmKCAiU2l6ZW9mKCB0ZXN0ICkgOiAlZFxuIiwgc2l6ZW9mKHRlc3QpICk7Cgl0ZXN0LnJhdyA9IDA7CglwcmludGYoICJSYXcgOiAlZFxuIiwgdGVzdC5yYXcgKTsKCXRlc3QuYml0MSA9IDE7Cgl0ZXN0LnR3b19iaXRzID0gMjsKCXByaW50ZiggIlJhdyA6ICVkXG4iLCB0ZXN0LnJhdyApOwoJcmV0dXJuIDA7Cn0=