#include <stdio.h>
typedef union
{
unsigned char uc[sizeof(double)];
float f;
double d;
}u_t;
void print(u_t u, size_t size, int endianess)
{
size_t start = 0;
int increment = 1;
if(endianess)
{
start = size - 1;
increment = -1;
}
for(size_t index = 0; index < size; index++)
{
start += increment;
}
}
int main(void)
{
u_t u;
u.f = 3.15f;
print(u, sizeof(float),0);
print(u, sizeof(float),1);
u.d = 3.15;
print(u, sizeof(double),0);
print(u, sizeof(double),1);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIAl1bmlvbgoJewoJCXVuc2lnbmVkIGNoYXIgdWNbc2l6ZW9mKGRvdWJsZSldOwoJCWZsb2F0IGY7CgkJZG91YmxlIGQ7Cgl9dV90OwoKdm9pZCBwcmludCh1X3QgdSwgc2l6ZV90IHNpemUsIGludCBlbmRpYW5lc3MpCnsKCXNpemVfdCBzdGFydCA9IDA7CglpbnQgaW5jcmVtZW50ID0gMTsKCQoJaWYoZW5kaWFuZXNzKQoJewoJCXN0YXJ0ID0gc2l6ZSAtIDE7CgkJaW5jcmVtZW50ID0gLTE7Cgl9CgkKCWZvcihzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IHNpemU7IGluZGV4KyspCgl7CgkJcHJpbnRmKCIlaGh4ICIsIHUudWNbc3RhcnRdKTsKCQlzdGFydCArPSBpbmNyZW1lbnQ7Cgl9CglwcmludGYoIlxuIik7Cn0KCgppbnQgbWFpbih2b2lkKSAKewoJdV90IHU7CQoJdS5mID0gMy4xNWY7CgkKCXByaW50KHUsIHNpemVvZihmbG9hdCksMCk7CglwcmludCh1LCBzaXplb2YoZmxvYXQpLDEpOwoJCgl1LmQgPSAzLjE1OwoJcHJpbnQodSwgc2l6ZW9mKGRvdWJsZSksMCk7CglwcmludCh1LCBzaXplb2YoZG91YmxlKSwxKTsKCXJldHVybiAwOwp9Cg==