#include <iostream>
int main(int argc, char **argv)
{
struct mala {
unsigned char value, value2, value3;
};
union unia {
mala a;
unsigned int b:24;
};
unia k;
k.b = 16003789;
mala a = k.a;
std::cout << sizeof(a) << " " << (int)a.value << " " << (int)a.value2 << " " << (int)a.value3 << std::endl;
mala b;
b.value = 100;
b.value2 = 0;
b.value3 = 1;
k.a = b;
std::cout << k.b; // 1 * 256 * 256 + 100 = 65636
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQp7CiAgc3RydWN0IG1hbGEgewogICAgdW5zaWduZWQgY2hhciB2YWx1ZSwgdmFsdWUyLCB2YWx1ZTM7CiAgfTsKICAKICB1bmlvbiB1bmlhIHsKICAJbWFsYSBhOwogIAl1bnNpZ25lZCBpbnQgYjoyNDsKICB9OwogIAogIHVuaWEgazsKICAKICBrLmIgPSAxNjAwMzc4OTsKICAKICBtYWxhIGEgPSBrLmE7CiAgc3RkOjpjb3V0IDw8IHNpemVvZihhKSA8PCAiICIgPDwgKGludClhLnZhbHVlIDw8ICIgIiA8PCAoaW50KWEudmFsdWUyIDw8ICIgIiA8PCAoaW50KWEudmFsdWUzIDw8IHN0ZDo6ZW5kbDsKICAKICBtYWxhIGI7CiAgYi52YWx1ZSA9IDEwMDsKICBiLnZhbHVlMiA9IDA7CiAgYi52YWx1ZTMgPSAxOwogIAogIGsuYSA9IGI7CiAgCiAgc3RkOjpjb3V0IDw8IGsuYjsgLy8gMSAqIDI1NiAqIDI1NiArIDEwMCA9IDY1NjM2CiAKICByZXR1cm4gMDsKfQ==