#include <stdio.h>
volatile union{
unsigned char Table_ALL[2];
struct{
union {
unsigned char Byte ;
struct {
unsigned char C1_1:1;
unsigned char C1_2:1;
unsigned char C1_3:1;
unsigned char C1_4:1;
unsigned char C1_5:1;
unsigned char C1_6:1;
unsigned char C1_7:1;
unsigned char C1_8:1;
}BIT;
} S1_C1;
union {
unsigned char Byte ;
struct {
unsigned char C2_1:1;
unsigned char C2_2:1;
unsigned char C2_3:1;
unsigned char C2_4:1;
unsigned char C2_5:1;
unsigned char C2_6:1;
unsigned char C2_7:1;
unsigned char C2_8:1;
}BIT;
} S1_C2;
}S1;
}Table;
int main(void) {
// your code goes here
printf("Table_ALL[0] = %d\n", Table.
Table_ALL[0]); printf("Table_ALL[1] = %d\n", Table.
Table_ALL[1]);
printf("Write 1 to S1_C1.Byte\n"); Table.S1.S1_C1.Byte = 1;
printf("S1.S1_C1.Byte = %d\n", Table.
S1.
S1_C1.
Byte); printf("S1.S1_C2.Byte = %d\n", Table.
S1.
S1_C2.
Byte);
printf("Table_ALL[0] = %d\n", Table.
Table_ALL[0]); printf("Table_ALL[1] = %d\n", Table.
Table_ALL[1]);
printf("Write 2 to S1_C2.Byte\n"); Table.S1.S1_C2.Byte = 2;
printf("S1.S1_C1.Byte = %d\n", Table.
S1.
S1_C1.
Byte); printf("S1.S1_C2.Byte = %d\n", Table.
S1.
S1_C2.
Byte);
printf("Table_ALL[0] = %d\n", Table.
Table_ALL[0]); printf("Table_ALL[1] = %d\n", Table.
Table_ALL[1]); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKdm9sYXRpbGUgdW5pb257CiAgICB1bnNpZ25lZCBjaGFyIFRhYmxlX0FMTFsyXTsKICAgIHN0cnVjdHsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEJ5dGUgOwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMV8xOjE7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzFfMjoxOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMxXzM6MTsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMV80OjE7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzFfNToxOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMxXzY6MTsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMV83OjE7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzFfODoxOwogICAgICAgICAgICAgICAgfUJJVDsKICAgICAgICB9IFMxX0MxOwogCiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBCeXRlIDsKICAgICAgICAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzJfMToxOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMyXzI6MTsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMl8zOjE7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzJfNDoxOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMyXzU6MTsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMl82OjE7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzJfNzoxOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMyXzg6MTsKICAgICAgICAgICAgICAgIH1CSVQ7CiAgICAgICAgfSBTMV9DMjsKICAgIH1TMTsKfVRhYmxlOwogCiAKaW50IG1haW4odm9pZCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcHJpbnRmKCJUYWJsZV9BTExbMF0gPSAlZFxuIiwgVGFibGUuVGFibGVfQUxMWzBdKTsKCXByaW50ZigiVGFibGVfQUxMWzFdID0gJWRcbiIsIFRhYmxlLlRhYmxlX0FMTFsxXSk7CiAKCXByaW50ZigiV3JpdGUgMSB0byBTMV9DMS5CeXRlXG4iKTsKCVRhYmxlLlMxLlMxX0MxLkJ5dGUgPSAxOwoJcHJpbnRmKCJTMS5TMV9DMS5CeXRlID0gJWRcbiIsIFRhYmxlLlMxLlMxX0MxLkJ5dGUpOwoJcHJpbnRmKCJTMS5TMV9DMi5CeXRlID0gJWRcbiIsIFRhYmxlLlMxLlMxX0MyLkJ5dGUpOwogCglwcmludGYoIlRhYmxlX0FMTFswXSA9ICVkXG4iLCBUYWJsZS5UYWJsZV9BTExbMF0pOwoJcHJpbnRmKCJUYWJsZV9BTExbMV0gPSAlZFxuIiwgVGFibGUuVGFibGVfQUxMWzFdKTsKIAoJcHJpbnRmKCJXcml0ZSAyIHRvIFMxX0MyLkJ5dGVcbiIpOwoJVGFibGUuUzEuUzFfQzIuQnl0ZSA9IDI7CglwcmludGYoIlMxLlMxX0MxLkJ5dGUgPSAlZFxuIiwgVGFibGUuUzEuUzFfQzEuQnl0ZSk7CglwcmludGYoIlMxLlMxX0MyLkJ5dGUgPSAlZFxuIiwgVGFibGUuUzEuUzFfQzIuQnl0ZSk7CiAKCXByaW50ZigiVGFibGVfQUxMWzBdID0gJWRcbiIsIFRhYmxlLlRhYmxlX0FMTFswXSk7CglwcmludGYoIlRhYmxlX0FMTFsxXSA9ICVkXG4iLCBUYWJsZS5UYWJsZV9BTExbMV0pOwoJcmV0dXJuIDA7Cn0=