#include <stdio.h>
union PIN {
unsigned int i_data;
struct {
unsigned char pin_and_command;
unsigned char pwn;
} s_data; /* имя можно опустить */
};
int
main(void) {
union PIN pin_data = (union PIN) { 0 };
union PIN pin_data2;
pin_data.s_data.pin_and_command = 's'; /* для примера */
pin_data.s_data.pwn = 'd';
int content = pin_data.i_data; /* Вот тебе то что нужно */
pin_data2.i_data = content;
printf("Before: %c, %c\nAfter: %c, %c\n",
pin_data.s_data.pin_and_command,
pin_data.s_data.pwn,
pin_data2.s_data.pin_and_command,
pin_data2.s_data.pwn);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp1bmlvbiBQSU4gewogICAgdW5zaWduZWQgaW50IGlfZGF0YTsKICAgIAogICAgc3RydWN0IHsKICAgICAgICB1bnNpZ25lZCBjaGFyIHBpbl9hbmRfY29tbWFuZDsKICAgICAgICB1bnNpZ25lZCBjaGFyIHB3bjsKICAgIH0gc19kYXRhOyAvKiDQuNC80Y8g0LzQvtC20L3QviDQvtC/0YPRgdGC0LjRgtGMICovCn07CgppbnQKbWFpbih2b2lkKSB7CiAgICB1bmlvbiBQSU4gcGluX2RhdGEgPSAodW5pb24gUElOKSB7IDAgfTsKICAgIHVuaW9uIFBJTiBwaW5fZGF0YTI7CiAgICAKICAgIHBpbl9kYXRhLnNfZGF0YS5waW5fYW5kX2NvbW1hbmQgPSAncyc7IC8qINC00LvRjyDQv9GA0LjQvNC10YDQsCAqLwogICAgcGluX2RhdGEuc19kYXRhLnB3biA9ICdkJzsKCiAgICBpbnQgY29udGVudCA9IHBpbl9kYXRhLmlfZGF0YTsgLyog0JLQvtGCINGC0LXQsdC1INGC0L4g0YfRgtC+INC90YPQttC90L4gKi8KICAgIAogICAgcGluX2RhdGEyLmlfZGF0YSA9IGNvbnRlbnQ7CiAgICAKICAgIHByaW50ZigiQmVmb3JlOiAlYywgJWNcbkFmdGVyOiAlYywgJWNcbiIsCiAgICAJCXBpbl9kYXRhLnNfZGF0YS5waW5fYW5kX2NvbW1hbmQsCiAgICAJCXBpbl9kYXRhLnNfZGF0YS5wd24sCiAgICAJCXBpbl9kYXRhMi5zX2RhdGEucGluX2FuZF9jb21tYW5kLAogICAgCQlwaW5fZGF0YTIuc19kYXRhLnB3bik7CiAgICAKICAgIHJldHVybiAwOwp9