이번에는 구조체 정의에 빠질수 없는 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 |