#include <stdio.h>
#include <stdlib.h>
union instructionSet {
struct Brane{
unsigned int opcode: 4;
unsigned int address: 12;
} brane;
struct Cmp{
unsigned int opcode: 4;
unsigned int blank: 1;
unsigned int rsvd: 3;
unsigned char letter: 8;
} cmp;
struct {
unsigned int rsvd: 16;
} reserved;
};
int main() {
union instructionSet IR;// = (union instructionSet*)calloc(1, 2);
printf("size of union %ld\n", sizeof(union instructionSet
)); printf("size of reserved %ld\n", sizeof(IR.
reserved)); printf("size of brane %ld\n", sizeof(IR.
brane)); printf("size of brane %ld\n", sizeof(IR.
cmp));
return 0;
}
CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+Cgp1bmlvbiBpbnN0cnVjdGlvblNldCB7CiAgICBzdHJ1Y3QgQnJhbmV7CiAgICAgICAgdW5zaWduZWQgaW50IG9wY29kZTogNDsKICAgICAgICB1bnNpZ25lZCBpbnQgYWRkcmVzczogMTI7CiAgICB9IGJyYW5lOwogICAgc3RydWN0IENtcHsKICAgICAgICB1bnNpZ25lZCBpbnQgb3Bjb2RlOiA0OwogICAgICAgIHVuc2lnbmVkIGludCBibGFuazogMTsKICAgICAgICB1bnNpZ25lZCBpbnQgcnN2ZDogMzsKICAgICAgICB1bnNpZ25lZCBjaGFyIGxldHRlcjogODsKICAgIH0gY21wOwogICAgc3RydWN0IHsKICAgICAgICB1bnNpZ25lZCBpbnQgcnN2ZDogMTY7CiAgICB9IHJlc2VydmVkOwp9OwoKaW50IG1haW4oKSB7CgogICAgdW5pb24gaW5zdHJ1Y3Rpb25TZXQgSVI7Ly8gPSAodW5pb24gaW5zdHJ1Y3Rpb25TZXQqKWNhbGxvYygxLCAyKTsKCiAgICBwcmludGYoInNpemUgb2YgdW5pb24gJWxkXG4iLCBzaXplb2YodW5pb24gaW5zdHJ1Y3Rpb25TZXQpKTsKICAgIHByaW50Zigic2l6ZSBvZiByZXNlcnZlZCAlbGRcbiIsIHNpemVvZihJUi5yZXNlcnZlZCkpOwogICAgcHJpbnRmKCJzaXplIG9mIGJyYW5lICVsZFxuIiwgc2l6ZW9mKElSLmJyYW5lKSk7CiAgICBwcmludGYoInNpemUgb2YgYnJhbmUgJWxkXG4iLCBzaXplb2YoSVIuY21wKSk7CgoKICAgIHJldHVybiAwOwp9