본문 바로가기

Programming/C Language

typedef 선언

이번에는 구조체 정의에 빠질수 없는 typedef 선언에 대해 정리한다.


typedef선언은 복잡한 유형의 자료형 선언을 좀더 유연하게 편리하게 해준다.
    일종의 자료형 치환 개념으로 보면 이해가 쉽다.

typedef선언이 무엇인지 살펴보자 , typedef선언은 기존에 존재하는 자료형의 이름에 새 이름을 부여하는 것을 목적으로 한다.


예를 보자.

typedef int INT;            //int의 또 다른 이름 INT부여

위 선언으로 인해 컴파일러에게 "자료형의 이름 int에 INT라는 이름을 추가로 붙여준다 . "라고 전한다.

이렇게 되면 INT num; 은 int num; 과 동일한 선언이 된다.

다음 예제를 살펴보자



3~8행 typedef선언을 통해 자료형을 치환하고 , 
12행부터 typedef 선언을 한 자료형으로 변수들을 초기화한다 , 각각의 행에 달려있는 주석을 통해 이해하자.

위에 예제에서 보듯이 typedef선언을 이용하면 , 복잡한 유형의 자료형을 보다 심플하게 처리할 수 있다.
그리고 typdef선언으로 정의되는 자료형의 이름은 대문자로 시작하는것이 일반적이다.


다음으로 구조체를 정의하는데 typedef선언을 이용하는 예시를 보자

우리는 앞서 이렇게 선언해왔다.
struct point {

int xpos;

int ypos;

};

그리고 이 상황에서는 구조체 변수를 다음과 같이 선언한다 .     struct point pos;


그런데 typedef선언을 이용하면 좀 더 간결해진다.

typedef struct point Point;            //struct point를 Point로 치환
struct point 라는 자료형을 Point로 치환한 셈이다.

그러면 우리는 이런식으로 구조체 변수 선언이 가능하다.
    Point pos;                            // struct point pos; 와 같은 문장


이렇듯 struct선언과 구조체의 이름을 대상으로도 typedef 선언이 가능하다.

이번엔 구조체 정의와 동시에 typedef 선언법을 알아보자!

1) 첫번째 방법                                            2) 두번째 방법


typedef  struct point                                       struct point

{                                                                 {

int xpos;                                                      int xpos;

int ypos;                                                      int ypos;

}Point;                                                          };

typedef struct point Point;



위와 같이 2가지 방법으로 정리가 가능하다 , 취향에 따라 선택하여 이용하면 되는데 개인적으로 1번 방법이 편한것 같다.

그럼 여태 설명한 내용의 확인을 위해 예제를 보자.



각 행의 주석을 참고하여 코드의 흐름을 이해하고 결과값을 예상해보자.





이번 정리를 통해 구조체 typdef 선언법과 구조체 변수 선언과 동시에 초기화 방법을 이해하자

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

예제풀이중 보충내용  (0) 2017.11.08
서식문자의 종류와 그 의미  (0) 2017.11.02
구조체 예제  (0) 2017.11.01
구조체 ( Structure )  (0) 2017.11.01
문자,문자열 관련 함수  (0) 2017.11.01