8
조합에는 현재 사용중인 멤버를 테스트 할 수있는 컨트롤 구조가 있습니다 (또는 전혀 테스트하지 않은 경우)? 정의되지 않은 동작이 결코 프로그램에서 좋은 일이 아니기 때문에 나는 이것을 묻습니다.현재 사용중인 멤버에 대해 통합 테스트를 수행했습니다.
조합에는 현재 사용중인 멤버를 테스트 할 수있는 컨트롤 구조가 있습니다 (또는 전혀 테스트하지 않은 경우)? 정의되지 않은 동작이 결코 프로그램에서 좋은 일이 아니기 때문에 나는 이것을 묻습니다.현재 사용중인 멤버에 대해 통합 테스트를 수행했습니다.
아니요, 그러한 메커니즘은 기성품입니다. 너 자신을 돌봐 줘야 해. 일반적인 방법은 struct
에 union
포장되어
struct MyUnion
{
int whichMember;
union {
//whatever
} actualUnion;
};
그래서 당신은
MyUnion x;
을 가지고
x.whichMember
은 (당신이 비록 기능을 구현해야합니다) 사용중인
x.actualUnion
의 어떤 필드 당신을 알려줍니다.
+1 :이 유형의 구조는 종종 "차별화 된 공용체"또는 "태그 지정된 공용체"라고합니다. –
네, 비슷한 접근 방식을 생각했습니다. 그러나 자기가 만든 언어 구조를 선호하기 때문에 존재하는 언어인지를 알아야했습니다. 빠른 답변 주셔서 감사합니다. –