typedef & struct (2)
Language/C 2012. 5. 29. 15:12typedef unsigned int UINT;
이 구문은 int형의 자료형을 UINT이란 이름으로써 자료형으로 쓰겠다는 말입니다.
UINT i;
라는 식으로 자료형자체로 사용해서 인스턴스를 생성할 수 있는거죠
이건 아실겁니다.
//(1)
struct _tagPoint{
int x;
int y;
}POINT;
//(1-1)
struct _tagPoint{
int x;
int y;
};
//(2)
typedef struct _tagPoint{
int x;
int y;
}POINT;
//(2-1)
typedef struct{
int x;
int y;
}POINT;
하나씩 설명하겠습니다.
(1)에서는
POINT라는 인스턴스를 생성한것입니다.
POINT.x로서 사용할 수 있다는 말입니다.
(1-1)에서는
선언된 인스턴스가 없습니다.
struct _tagPoint POINTS;
POINTS s;
s.x로서 사용할 수 있습니다.
(2)에서는
구조체자체를 POINT라는 자료형으로 정의한 것입니다.
POINT s;
s.x로서 사용할 수 있습니다.
(2-1)도 마찬가지지만
tag명을 생략하고 사용가능합니다.
(2)와의 차이점은
struct xxx s;
s.x로서 사용하실 수 없습니다.
오로지 POINT s;
s.x로서 사용하실 수 있습니다.
정리하면
typedef 문을 사용하시게 되면
인스턴스가 생성되는게 아닙니다. 자료형이 하나 정의되게 되는 것입니다.
'Language > C' 카테고리의 다른 글
the way to check if a character array is empty (0) | 2012.06.13 |
---|---|
가변인수 va_start() (0) | 2012.06.11 |
sscanf (0) | 2012.05.29 |
typedef & struct (1) (0) | 2012.05.23 |
inconv source (iconv_open, iconv, iconv_close) (0) | 2012.05.16 |