구조체와 달리 메모리를 공유한다.
union A {
int i;
char j;
};
int main()
{
union A a;
a.i = 0x12345678;
printf("%x", a.j);
return 0;
}
리틀 엔디안방식으로 동작하기에 이렇게 나온다
낮은 주소
에 데이터의 높은 바이트
부터 저장(숫자가 낮을수록 상위바이트이다)
(사람이 수를 셀때 쓰는 방식)
낮은 주소
에 데이터의 낮은 바이트
부터 저장
(대부분의 컴퓨터가 읽는 방식)
enum { RED, BLUE, WHITE, BLACK };
RED = 0
BLUE = 1
WHITE =2
BLACK = 3
차례대로 정수값을 매기게됨
enum { RED = 3, BLUE, WHITE, BLACK };
3 4 5 6 이런식으로 됨
enum { RED = 3, BLUE, WHITE = 3, BLACK };
3 4 3 4 이런식으로 됨
열거형에서는 언제나 정수값