Wpis z mikrobloga

Pokazowy przykład na little endian vs big endian na przykładzie type punning w uniach:

#include
#include
#include

union RGB
{
uint32t color;

struct componentsTag
{
uint8
t r;
uint8t g;
uint8
t b;
} components;

} pixel = { .color = 0x020406 };

int main(void)
{
printf("%d\n", pixel.components.r);
printf("%d\n", pixel.components.g);
printf("%d\n", pixel.components.b);
}

x86 little endian:
$ ./a.out
6
4
2

MIPS big endian:
$ ./a.out
0
2
4