C, C++ 문법

typedef 태그네임 사용하여 구조체 선언시 문법에 맞는 올바른 형태와 주의점

디버그정 2009. 11. 18. 08:09
C,C++ 공통으로 태그를 사용해 모두 통하게 하려면
다음과 같이 선언해야 한다.

 typedef struct _tagNode
{
  TCHAR szDir[2048];
  struct  _tagNode *pNext;
 } Node;

Node test;

맨 윗줄 _tagNode라는 이름을 생략해도 별 무리없지만 정확한 c문법은 아니라고 한다.

앞의 예처럼 구조체 안에서 선언한 구조체의 포인터를 선언하는 경우는 반드시
구조체 안에서는 c문법을 지켜서 struct 태그네임을 붙여야 되는 듯 하다.
struct를 생략하면 컴파일 에러났다.(C파일로 테스트해 보았다.)