본문 바로가기

프로그래밍./C언어.

typedef란? typedef 사용법

typedef의 개념.
말 그대로 자료형(type)를 정의 하는 것(define)
int나 float 같은 자료형을 내가 원하는 대로 정의 할 수 있다.

음.. 자료형의 이름을 바꾼다고 볼 수도 있겠다.

typedef int MY;
int라는 자료형을 MY라고 바꾼다는 뜻. 이렇게 정의하면
int a; 대신에 MY a; 로 선언해도 똑같다. 

책에서 이야기 하는 장점의 예는,
지금은 모르겠지만 예전에 컴퓨터 시스템마다 int형의 바이트 크기가
다른 경우가 있었다. 때문에 int를 INT16, INT32 형식으로 선언해서
다른이가 알아보기 편하게 한다는 내용이 있었다.

이해하기 쉬운 예는.. unsingned int를 UINT로 변환하는 걸까나?
unsigned int는 기존의 int에서 음수부분을 표기하던 만큼을 양수로 옮기는 것.

즉, -100 ~ +100까지 표현 가능하다면, unsigned시 0~+200이 되는 셈.
unsigned를 계속 쓰기 번거로우니 아예 자료형을 새로 정의 하기도 한다.

내가 본 가장 많이 사용하는 예는
구조체를 새로운 자료형으로 정의하는 것이다.

struct test
{
   int x;
   int y;
}; 

이렇게 구조체를 선언하면 main에서

struct test t;  라고 해야 하지만 

typedef strct test TEST; 라고 해 놓으면 TEST t; 라고만 해도 된다.

int x와 int y가 들어있는 구조체 자체가 하나의 자료형으로 만들어진 것이다.

구조체를 만들 때 자료형을 만드는 것도 가능하다.
typedef struct test
{
   int x;
   int y;
} TEST;    로 만들면 뒤에 두줄과 같은 동작을 한다.

별 필요 없어 보이기도 하지만, 다른건 잘 모르겠고, 구조체를 자료형으로
만드는 것은 편리한거 같다.

구조체를 만들고, 함수로 넘겨주고 넘겨 받고 그런 일이 생기면
매번 struct test를 써야 하는 번거로움을 덜은 셈이니까.

int add(TEST t, TEST s);




유용한 정보가 되셨다면 손가락 한번 눌러주세요 ^-^