#include<stdio.h>
union node {
int i;
char c[2];
};
main() {
union node n;
n.c[0] = 0;
n.c[1] = 2;
printf("%d\n", n.i);
return 0;
}
512
c[0] 値が最初のバイトに格納され、c[1] 値が 2 番目のバイトに格納されるため、出力が得られると思いますが、 1965097472
. どうして ?。このプログラムを Windows のコードブロックでコンパイルしました。