#include <stdio.h>
int main(void) {
struct bitfield{
unsigned a:5;
unsigned c:5;
unsigned b:6;
} bit = {1,3,3};
char *p = (char*)&bit;
p++;
// I assumed that the bits are laid out in the below order in the memory. Spaces are just for clarity
// Also, I asumed that the 'char' will take 8 bits. But I can't seem to understand the output.
//00001 00011 000011
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKSB7CgoJc3RydWN0IGJpdGZpZWxkewoJCXVuc2lnbmVkIGE6NTsKCQl1bnNpZ25lZCBjOjU7CgkJdW5zaWduZWQgYjo2OwoJfSBiaXQgPSB7MSwzLDN9OwoJCgljaGFyICpwID0gKGNoYXIqKSZiaXQ7CglwcmludGYoIiVkXG4iLCpwKTsKCXArKzsKCXByaW50ZigiJWRcbiIsKnApOwoJLy8gSSBhc3N1bWVkIHRoYXQgdGhlIGJpdHMgYXJlIGxhaWQgb3V0IGluIHRoZSBiZWxvdyBvcmRlciBpbiB0aGUgbWVtb3J5LiBTcGFjZXMgYXJlIGp1c3QgZm9yIGNsYXJpdHkKCS8vIEFsc28sIEkgYXN1bWVkIHRoYXQgdGhlICdjaGFyJyB3aWxsIHRha2UgOCBiaXRzLiBCdXQgSSBjYW4ndCBzZWVtIHRvIHVuZGVyc3RhbmQgdGhlIG91dHB1dC4KCS8vMDAwMDEgMDAwMTEgMDAwMDExCglyZXR1cm4gMDsKfQoKCg==