#include <stdio.h>
#include <time.h>
#include <algorithm>
#include <random>
#include <x86intrin.h>
#pragma pack(push, 1)
struct test{
union{
struct{char data[8]; };
struct{char a; float x; char b[3]; };
};
};
#pragma pack(pop)
union soft{
float x;
char c[4];
};
int main()
{
soft a;
a.x=124.12414;
test b;
for (int i=0;i<4;i++){
b.data[i+1]=a.c[i];
}
float* m=&b.x;
printf("%.6f\n",a.x);
printf("%.6f\n",*(float*)&b.x);
printf("%.6f\n",*(float*)(&b.data[1]));
printf("%.6f\n",*m);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxyYW5kb20+CiNpbmNsdWRlIDx4ODZpbnRyaW4uaD4KCiNwcmFnbWEgcGFjayhwdXNoLCAxKQpzdHJ1Y3QgdGVzdHsKCXVuaW9uewoJCXN0cnVjdHtjaGFyIGRhdGFbOF07IH07CgkJc3RydWN0e2NoYXIgYTsgZmxvYXQgeDsgY2hhciBiWzNdOyB9OwoJfTsKfTsKI3ByYWdtYSBwYWNrKHBvcCkKCnVuaW9uIHNvZnR7CglmbG9hdCB4OwoJY2hhciBjWzRdOwp9OwoKaW50IG1haW4oKQp7Cglzb2Z0IGE7CglhLng9MTI0LjEyNDE0OwoJdGVzdCBiOwoJZm9yIChpbnQgaT0wO2k8NDtpKyspewoJCWIuZGF0YVtpKzFdPWEuY1tpXTsKCX0KCWZsb2F0KiBtPSZiLng7CglwcmludGYoIiUuNmZcbiIsYS54KTsKCXByaW50ZigiJS42ZlxuIiwqKGZsb2F0KikmYi54KTsKCXByaW50ZigiJS42ZlxuIiwqKGZsb2F0KikoJmIuZGF0YVsxXSkpOwoJcHJpbnRmKCIlLjZmXG4iLCptKTsKCn0K