■ 키워드 typedef은 이미 존대하는 자료형에 새로운 이름을 붙이기 위한 용도로 사용된다.

   typedef int INT;

- typedef : 이름을 지어줍시다.
- int : 기본 자료형 int 에게.
- INT : INT라는 이름을.


(1) typedef
: typedef을 통해 새로운 이름을 선언해준 다음부터는 키워드 int를 통한 변수의 선언 뿐만 아니라, 
  INT라는 새로운 이름을 통한 변수의 선언도 가능해진다.


[CODE]
typedef int INT;
typedef int* P_INT;

int main(void)
{
   INT a = 10;          // int a=10;
   P_INT pA=&a;      // int* pA=&a;

   printf("%d\n", *pA);
   return 0;
}

[RESULT]
10

- int를 INT로 int*를 P_INT로 치환하여 사용하여도 같은 결과를 얻을 수 있었다.


(2) typedef와 구조체 변수 선언
: typedef 키워드를 사용해 구조체 변수를 선언 시 struct 키워드를 사용하지 않고 선언 할 수 있다.


[CODE]
struct Data
{
   int data1;
   int data2;
};

typedef struct Data Data;

int main(void)
{
   Data d={1, 2};
   printf("%d, %d\n", d.data1, d.data2);

   return 0;
}

[RESULT]
1, 2

- 이와같이 "struct Data d" 대신 "Data d"를 사용할 수 있다.


(3) 구조체 정의와 typedef 선언 동시에 하기

[ex1]
struct Data

{
   int data1;
   int data2;
};
typedef struct Data Data;
      -------------> [ex2]
typedef struct Data

{
   int data1;
   int data2;
} Data; 

- [ex2]의 경우 typedef struct Data 에서 Data를 생략할 수 있는데,
- 생략할 경우 Data d1; 으로 구조체를 정의할 수는 있지만, struct Data d1;으로 정의 할 수는없다.
- 생략하지 않을경우는 두가지 방법으로 정의 가능.

'P rogramming > C Language' 카테고리의 다른 글

포인터 배열 과 배열 포인터  (2) 2011.10.27
문자열 변수와 문자열 상수  (1) 2011.10.27
문자열과 포인터 이론  (2) 2011.10.26
2차원 배열과 포인터 이론  (4) 2011.10.26
1차원 배열과 포인터 이론  (0) 2011.10.26
by 민트앤라떼 2011. 10. 26. 16:06