나는 전역 범위에서이 구조이 구조체/공용체 선언에 어떤 문제가 있습니까?
struct a{
int a;
int x;
union b{
int a;
int b;
int y;
};
};
를 선언 그리고 주요 내부에 노동 조합을 선언,
union b a;
을 그리고이 오류를 제공하지 않습니다. 그러나 선언 조합의 경우 'A'와 같은 구조의 정의에 :
struct a{
int a;
int x;
union b{
int a;
int b;
int y;
}a;
};
이 오류 "중복 회원 A"를 제공합니다. (이전 이름에서 'a'라는 동일한 이름을 사용했습니다.) 왜 다른 하나는 작동하고 다른 하나는 작동하지 않습니까?
두 번째로 struct 내부에서 선언 된 공용체를 어떻게 독립적으로 사용할 수 있습니까? 다른 정수 변수 인 'x'를 사용할 수 없습니까? 같이, 나는 수행 할 수있는 성공적으로 다음
union b z; //works in this case, BUT not if we declare 'z' with the definition.
z.y=6; //works
x=6; //gives error
(나는 우리가 주 안에 연합을 선언하는 이해하지만 구조체 내부에서의 정의처럼, struct.union.union_variable 말이 있지만, union.union_variable 필요. 'x'와 같이 대우하면 안됩니다.)
유니온을 'a'로 선언했기 때문에 구조체 a의 다른 멤버가되어 'a'라는 멤버가 이미 있습니까? –