#include <stdio.h>
volatile union{
unsigned char Table_ALL[2][2];
struct{
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;
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;
} S2_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;
} S2_C2;
}S2;
}CS_ALL;
}Table;
int main(void) {
// your code goes here
printf("Table_ALL[0][0] = %d\n", Table.
Table_ALL[0][0]); printf("Table_ALL[0][1] = %d\n", Table.
Table_ALL[0][1]); printf("Table_ALL[1][0] = %d\n", Table.
Table_ALL[1][0]); printf("Table_ALL[1][1] = %d\n\n", Table.
Table_ALL[1][1]);
printf("Write 1 to S1.S1_C1.Byte\n"); printf("Write 2 to S1.S1_C2.Byte\n"); printf("Write 3 to S2.S2_C1.Byte\n"); printf("Write 4 to S2.S2_C2.Byte\n\n");
Table.CS_ALL.S1.S1_C1.Byte = 1;
Table.CS_ALL.S1.S1_C2.Byte = 2;
Table.CS_ALL.S2.S2_C1.Byte = 3;
Table.CS_ALL.S2.S2_C2.Byte = 4;
printf("S1.S1_C1.Byte = %d\n", Table.
CS_ALL.
S1.
S1_C1.
Byte); printf("S1.S1_C2.Byte = %d\n", Table.
CS_ALL.
S1.
S1_C2.
Byte); printf("S2.S2_C1.Byte = %d\n", Table.
CS_ALL.
S2.
S2_C1.
Byte); printf("S2.S2_C2.Byte = %d\n\n", Table.
CS_ALL.
S2.
S2_C2.
Byte);
printf("Table_ALL[0][0] = %d\n", Table.
Table_ALL[0][0]); printf("Table_ALL[0][1] = %d\n", Table.
Table_ALL[0][1]); printf("Table_ALL[1][0] = %d\n", Table.
Table_ALL[1][0]); printf("Table_ALL[1][1] = %d\n\n", Table.
Table_ALL[1][1]);
printf("Write 5 to S1.S1_C1.Byte\n"); printf("Write 6 to S1.S1_C2.Byte\n"); printf("Write 7 to S2.S2_C1.Byte\n"); printf("Write 8 to S2.S2_C2.Byte\n\n");
Table.CS_ALL.S1.S1_C1.Byte = 5;
Table.CS_ALL.S1.S1_C2.Byte = 6;
Table.CS_ALL.S2.S2_C1.Byte = 7;
Table.CS_ALL.S2.S2_C2.Byte = 8;
printf("S1.S1_C1.Byte = %d\n", Table.
CS_ALL.
S1.
S1_C1.
Byte); printf("S1.S1_C2.Byte = %d\n", Table.
CS_ALL.
S1.
S1_C2.
Byte); printf("S2.S2_C1.Byte = %d\n", Table.
CS_ALL.
S2.
S2_C1.
Byte); printf("S2.S2_C2.Byte = %d\n\n", Table.
CS_ALL.
S2.
S2_C2.
Byte);
printf("Table_ALL[0][0] = %d\n", Table.
Table_ALL[0][0]); printf("Table_ALL[0][1] = %d\n", Table.
Table_ALL[0][1]); printf("Table_ALL[1][0] = %d\n", Table.
Table_ALL[1][0]); printf("Table_ALL[1][1] = %d\n\n", Table.
Table_ALL[1][1]); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKdm9sYXRpbGUgdW5pb257CiAgICB1bnNpZ25lZCBjaGFyIFRhYmxlX0FMTFsyXVsyXTsKCXN0cnVjdHsKCSAgICBzdHJ1Y3R7CgkgICAgICAgIHVuaW9uIHsKCSAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEJ5dGUgOwoJICAgICAgICAgICAgICAgIHN0cnVjdCB7CgkgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMxXzE6MTsKCSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzFfMjoxOwoJICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMV8zOjE7CgkgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMxXzQ6MTsKCSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzFfNToxOwoJICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMV82OjE7CgkgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMxXzc6MTsKCSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzFfODoxOwoJICAgICAgICAgICAgICAgIH1CSVQ7CgkgICAgICAgIH0gUzFfQzE7CgkgCgkgICAgICAgIHVuaW9uIHsKCSAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEJ5dGUgOwoJICAgICAgICAgICAgICAgIHN0cnVjdCB7CgkgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMyXzE6MTsKCSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzJfMjoxOwoJICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMl8zOjE7CgkgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMyXzQ6MTsKCSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzJfNToxOwoJICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMl82OjE7CgkgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMyXzc6MTsKCSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzJfODoxOwoJICAgICAgICAgICAgICAgIH1CSVQ7CgkgICAgICAgIH0gUzFfQzI7CgkgICAgfVMxOwoJICAgIHN0cnVjdHsKCSAgICAgICAgdW5pb24gewoJICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQnl0ZSA7CgkgICAgICAgICAgICAgICAgc3RydWN0IHsKCSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzFfMToxOwoJICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMV8yOjE7CgkgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMxXzM6MTsKCSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzFfNDoxOwoJICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMV81OjE7CgkgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMxXzY6MTsKCSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzFfNzoxOwoJICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMV84OjE7CgkgICAgICAgICAgICAgICAgfUJJVDsKCSAgICAgICAgfSBTMl9DMTsKCSAKCSAgICAgICAgdW5pb24gewoJICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQnl0ZSA7CgkgICAgICAgICAgICAgICAgc3RydWN0IHsKCSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzJfMToxOwoJICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMl8yOjE7CgkgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMyXzM6MTsKCSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzJfNDoxOwoJICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMl81OjE7CgkgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEMyXzY6MTsKCSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgQzJfNzoxOwoJICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBDMl84OjE7CgkgICAgICAgICAgICAgICAgfUJJVDsKCSAgICAgICAgfSBTMl9DMjsKCSAgICB9UzI7Cgl9Q1NfQUxMOwp9VGFibGU7CiAKIAppbnQgbWFpbih2b2lkKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglwcmludGYoIlRhYmxlX0FMTFswXVswXSA9ICVkXG4iLCBUYWJsZS5UYWJsZV9BTExbMF1bMF0pOwoJcHJpbnRmKCJUYWJsZV9BTExbMF1bMV0gPSAlZFxuIiwgVGFibGUuVGFibGVfQUxMWzBdWzFdKTsKCXByaW50ZigiVGFibGVfQUxMWzFdWzBdID0gJWRcbiIsIFRhYmxlLlRhYmxlX0FMTFsxXVswXSk7CglwcmludGYoIlRhYmxlX0FMTFsxXVsxXSA9ICVkXG5cbiIsIFRhYmxlLlRhYmxlX0FMTFsxXVsxXSk7CiAKCXByaW50ZigiV3JpdGUgMSB0byBTMS5TMV9DMS5CeXRlXG4iKTsKCXByaW50ZigiV3JpdGUgMiB0byBTMS5TMV9DMi5CeXRlXG4iKTsKCXByaW50ZigiV3JpdGUgMyB0byBTMi5TMl9DMS5CeXRlXG4iKTsKCXByaW50ZigiV3JpdGUgNCB0byBTMi5TMl9DMi5CeXRlXG5cbiIpOwoKCVRhYmxlLkNTX0FMTC5TMS5TMV9DMS5CeXRlID0gMTsKCVRhYmxlLkNTX0FMTC5TMS5TMV9DMi5CeXRlID0gMjsKCVRhYmxlLkNTX0FMTC5TMi5TMl9DMS5CeXRlID0gMzsKCVRhYmxlLkNTX0FMTC5TMi5TMl9DMi5CeXRlID0gNDsKCglwcmludGYoIlMxLlMxX0MxLkJ5dGUgPSAlZFxuIiwgVGFibGUuQ1NfQUxMLlMxLlMxX0MxLkJ5dGUpOwoJcHJpbnRmKCJTMS5TMV9DMi5CeXRlID0gJWRcbiIsIFRhYmxlLkNTX0FMTC5TMS5TMV9DMi5CeXRlKTsKCXByaW50ZigiUzIuUzJfQzEuQnl0ZSA9ICVkXG4iLCBUYWJsZS5DU19BTEwuUzIuUzJfQzEuQnl0ZSk7CglwcmludGYoIlMyLlMyX0MyLkJ5dGUgPSAlZFxuXG4iLCBUYWJsZS5DU19BTEwuUzIuUzJfQzIuQnl0ZSk7CiAKCXByaW50ZigiVGFibGVfQUxMWzBdWzBdID0gJWRcbiIsIFRhYmxlLlRhYmxlX0FMTFswXVswXSk7CglwcmludGYoIlRhYmxlX0FMTFswXVsxXSA9ICVkXG4iLCBUYWJsZS5UYWJsZV9BTExbMF1bMV0pOwoJcHJpbnRmKCJUYWJsZV9BTExbMV1bMF0gPSAlZFxuIiwgVGFibGUuVGFibGVfQUxMWzFdWzBdKTsKCXByaW50ZigiVGFibGVfQUxMWzFdWzFdID0gJWRcblxuIiwgVGFibGUuVGFibGVfQUxMWzFdWzFdKTsKIAoJcHJpbnRmKCJXcml0ZSA1IHRvIFMxLlMxX0MxLkJ5dGVcbiIpOwoJcHJpbnRmKCJXcml0ZSA2IHRvIFMxLlMxX0MyLkJ5dGVcbiIpOwoJcHJpbnRmKCJXcml0ZSA3IHRvIFMyLlMyX0MxLkJ5dGVcbiIpOwoJcHJpbnRmKCJXcml0ZSA4IHRvIFMyLlMyX0MyLkJ5dGVcblxuIik7CgoJVGFibGUuQ1NfQUxMLlMxLlMxX0MxLkJ5dGUgPSA1OwoJVGFibGUuQ1NfQUxMLlMxLlMxX0MyLkJ5dGUgPSA2OwoJVGFibGUuQ1NfQUxMLlMyLlMyX0MxLkJ5dGUgPSA3OwoJVGFibGUuQ1NfQUxMLlMyLlMyX0MyLkJ5dGUgPSA4OwoKCXByaW50ZigiUzEuUzFfQzEuQnl0ZSA9ICVkXG4iLCBUYWJsZS5DU19BTEwuUzEuUzFfQzEuQnl0ZSk7CglwcmludGYoIlMxLlMxX0MyLkJ5dGUgPSAlZFxuIiwgVGFibGUuQ1NfQUxMLlMxLlMxX0MyLkJ5dGUpOwoJcHJpbnRmKCJTMi5TMl9DMS5CeXRlID0gJWRcbiIsIFRhYmxlLkNTX0FMTC5TMi5TMl9DMS5CeXRlKTsKCXByaW50ZigiUzIuUzJfQzIuQnl0ZSA9ICVkXG5cbiIsIFRhYmxlLkNTX0FMTC5TMi5TMl9DMi5CeXRlKTsKIAoJcHJpbnRmKCJUYWJsZV9BTExbMF1bMF0gPSAlZFxuIiwgVGFibGUuVGFibGVfQUxMWzBdWzBdKTsKCXByaW50ZigiVGFibGVfQUxMWzBdWzFdID0gJWRcbiIsIFRhYmxlLlRhYmxlX0FMTFswXVsxXSk7CglwcmludGYoIlRhYmxlX0FMTFsxXVswXSA9ICVkXG4iLCBUYWJsZS5UYWJsZV9BTExbMV1bMF0pOwoJcHJpbnRmKCJUYWJsZV9BTExbMV1bMV0gPSAlZFxuXG4iLCBUYWJsZS5UYWJsZV9BTExbMV1bMV0pOwoJcmV0dXJuIDA7Cn0=