구조체와 typedef질문입니다.
후력
구조체 안에 typedef로 정의한 자기자신은 못쓰나요?질문 내용 :
typedef structTest{
int A;
int B;
Test* p -이부분이 에러가 나는데
// struct Test * p -로 하면 에러가 나지않습니다. 위경우에 왜 에러가나는지 알려주시면 감사하겠습니다.
}Test;
-
동백
앗;; 오타났네요;;
typedef struct Test; 이것을..
typedef struct Test Test; 라고 고쳐야 겠네요... 물론 제가 적은것에서요. -
MyWay
요런식으로도 하시면 됩니다 ~
typedef struct node{
\tchar word[MAX_SIZE];
\tstruct node *link;
}Node; -
온새미로
그래서 이렇게 하는 방법이 있습니다.
typedef struct Test;
struct Test
{
int A;
int B;
Test* p;
}; -
김슬픔
아.. 감사합니다. typedef 키워드는 선언이후부터 유효하다는말씀이군요
-
가지
typedef를 씀과 동시에는 안되는거같네요. 카수다님말씀대로 이후에는 될거에요..
-
아서
구조체는 그 타입이 구조체라는 것을 알려줘야 합니다. 위에서 Test라고 하신것은 구조체의 이름만이므로 그런 타입은 존재하지 않는다는 에러를 내는 것입니다. 하지만 typedef를 쓰셨으니 {}Test; 이후로는 struct라는 항목을 빼도 에러가 나지 않습니다. 왜냐하면 struct Test라는 이름을 Test라는 이름으로 정의하였기 때문입니다. 이건 질문과 상관없지만 될수있는한 struct 다음에 오는 구조체 이름과 typedef 한 이름을 동일하게