typedef & struct (2)

Language/C 2012. 5. 29. 15:12

typedef 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 문을 사용하시게 되면
인스턴스가 생성되는게 아닙니다. 자료형이 하나 정의되게 되는 것입니다.


출처 - http://tarakuny.egloos.com/4428318

'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
: