Anonymous Union (익명의 유니온) 사용법 질문 - C 프로그램
글쓴이: yeilho / 작성시간: 금, 2007/03/16 - 10:50오전
아래처럼 구조체가 선언되어 있는 경우에는, 유니온 멤버가 이름이 없습니다. 이런 경우에는 값을 셋팅할 수 있나요?
typedef struct network_info { uint16_t sa_family; union { uint32_t sin_addr; uint8_t saddr[4]; uint32_t sin6_addr[4]; uint8_t saddr6[16]; }; } network_info_t;
유니온의 이름이 있는 경우에는 간단하던데, 이름이 없다보니 잘 모르겠네요. 조언 부탁드립니다.
감사합니다.
일호 <><
Forums:
struct안에서 익명의
struct안에서 익명의 struct나 union이 표준인가 모르겠네요. 지원 안되는 컴파일러도 있거든요. 아무튼 사용은 더 쉽습니다.
network_info_t net_info;
net_info.sin_addr = xx;
memset(net_info.saddr6, 0, sizeof(net_info.saddr6));
이런식으로 struct의 멤버 변수처럼 쓰시면 됩니다.
그리고 union으로 묶인 변수들은 메모리 영역을 공유하게 되겠죠..
댓글 달기