공용체 union
2019. 5. 25. 13:38ㆍPL/C++
구조체한 비슷한 형태를 가진 union의 사용법은 구조체와 비슷하나 메모리 활용에서 차이가 있다. epoll_data 정의는 union으로 선언되어 있는데, 그 안을 보면
typedef union epoll_data {
void *ptr;
int fd;
__uint32_t u32;
__uint64_t u64;
} epoll_data_t;
안에 멤버 변수 중 가장 큰 바이트 크기로 메모리를 할당한다. 그리고 4개의 변수 중 하나만 설정이 가능하다. 따라서 만일 4바이트 fd를 설정하면 epoll_data를 fd의 값을 가지고 있고, 다른 변수를 호출해도 0을 리턴하게 된다
'PL > C++' 카테고리의 다른 글
strlen과 sizeof의 차이 (0) | 2019.05.27 |
---|---|
GNU 코딩 가이드 (0) | 2019.05.27 |
구조체 메모리 복사 (0) | 2019.05.22 |
주석으로 쌓여진 내용에 다시 주석을 달 경우 (0) | 2019.05.19 |
gets의 취약점 (0) | 2019.05.19 |