c언어 공용체 (union) : 멤버들이 같은 메모리 공간을 공유한다.
네트워크 프로그래밍 시간에, htonl 이런 함수들을 배울 거에요. 리틀 엔디안 순서면, 빅 엔디안 순서로 바꿔버리는, 뭐 그러한 메소드입니다. 더 정확히 말하면, 이런 변환을 해야 합니다. uint32_t를 리틀 엔디안으로 표현한 것이 ABCD라고 해 봅시다. 이걸 빅 엔디안으로 바꾸면 DCBA입니다. 여러 방법이 있지만, c언어의 공용체를 이용해서 쉽게 처리하는 방법을 배워보도록 하겠습니다. 공용체의 멤버들은 같은 메모리 공간을 공유합니다. 구조체는, 멤버들이 같은 메모리 공간을 공유하지 않습니다. 그러면 아래와 같이 선언하면 어떻게 될까요? moo 변수인 t를 할당할 때 메모리에 어떻게 그려지는지 보겠습니다. 이렇게 될 겁니다. 중요한 것은 num과 char형 배열인 x는 메모리 공간을 공유한다는 ..
코딩/C
2020. 3. 18. 20:51
최근댓글