2013-11-03 1 views
0

struct 유형을 정의 할 때 아래의 Node (.. Node {..)를 사용하면 컴파일 시간 오류가 발생합니다.typedef struct 정의에 사용됨

typedef struct node Node; 

Node{ 
    int data; 
    Node *next; 
}; 

나를 혼란시키는 매우 기본적인 개념이 있습니다. 관련 링크로 안내하거나 참조하십시오.

+0

당신이 그것을 할 또는 것으로 기대 명확하게하기 위해 첫 번째 문장을 수정하시기 바랍니다 수 :
*pNode에 의해 초기화 동일한에 대한 포인터를, 무엇입니까? – glglgl

+1

유효하지 않기 때문에 유효하지 않습니다. 구조체 타입의 정의는 키워드'struct'로 시작해야합니다. 그게 전부입니다. – AnT

+0

그래, 맞다면. 감사! –

답변

1

Typedef는 다른 유형에 별칭을 제공하는 데 사용됩니다. 그것은 매크로가 아니며, 사용 장소에서 어떤 것으로 대체되지 않습니다.

올바른 정의 할 수 있습니다

최소한
typedef struct node { 
    int data; 
    struct node* next; 
} Node; 
1

, 당신이 그것을 그러나

typedef struct node Node; 

struct Node{ 
    int data; 
    Node *next; 
}; 
0

말할 필요, 당신은 는이 작업을 수행 할 수 있습니다

typedef struct { 
    int data; 
    struct Node *next; 
}Node; 

이제 struct Node의 인스턴스를 쉽게 만들 수 있습니다. node 유형 struct Node의 새로운 변수의 이름입니다

Node node, *pNode; 

:에 의해 만들었습니다.

pNode = &node;