プログラミング C言語 復習 共用体 エンディアン

共用体とか、エンディアンとか、とかとか...

#include <stdio.h>

union Value{
        unsigned char chValue;
        int iValue;
};

int main (void)
{
        union Value u;
        u.iValue = 0xAABBCCDD;
        printf("sizeofint = %d\n",sizeof(int));
        printf("chValue = %08X\niValue = %08X\n",u.chValue,u.iValue);
        u.chValue = 0xFF;
        printf("chValue = %08X\niValue = %08X\n",u.chValue,u.iValue);
        return 0;
}

sizeofint = 4
chValue = 000000AA
iValue = AABBCCDD
chValue = 000000FF
iValue = FFBBCCDD
メモリを共有しているから、もちろんこういう実行結果になる。