#include<stdio.h>
int main()
{
union emp;
union emp{
int age;
char name[2];
};
union emp e1={512};
printf("%d,%d,%d",e1.age,e1.name[0],e1.name[1]);
return 0;
}
這裏試圖craete工會和初始化其第一個成員,即「整數時代」。據我所知,ANSI C編譯器支持這一點。我的問題是爲什麼我得到像「512,0,2」的輸出。如果我用513,514和768代替512,我會得到以下輸出。 「513,1,2」, 「514,2,2」, 「768,0,3」, 現在我可以看到e1.name [0]正在存儲(數字)%256和e1 .name [1]正在存儲(數字)/ 256。 如果解釋爲什麼發生這種情況,將不勝感激。 謝謝大家。工會初始化在c
看看http://stackoverflow.com/questions/346536/difference-between-a-structure-and-a-union-in-c – zakinster