구조체
1. 구조체란?
- 서로 다른 자료형을 갖는 자료의 모임을 하나의 자료형으로 정의하여 사용하는 자료형을 말한다.
- 사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입
- 배열이 같은 타입의 변수 집합이라고 한다면, 구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것
- 사용자 정의 자료형 (user-defined data type)
2. 정의
- 문법
# 구조체 정의
struct 구조체이름 {
자료형 변수명 1;
자료형 변수명 2;
...
}; <--- 마지막은 반드시 ";"을 넣어야 함
-----------------------------------------------------------------------------------------------------------
# 구조체 변수의 선언
struct 구조체명 변수명;
-----------------------------------------------------------------------------------------------------------
# 구조체 정의와 구조체 변수 선언을 동시에 하기
struct 구조체이름 {
자료형 변수명 1;
자료형 변수명 2;
...
} 구조체변수명;
-----------------------------------------------------------------------------------------------------------
EX) struct point {
int x;
int y;
};
3. typedf
- typerdef은 뜻 그대로 자료형(type)을 정의(define) 하는 것이다.
- C언어가 기본적으로 제공하는 int형이나 float형이나 구조체로 만든 기존 자료형에서 사용자가 새로운 자료형을 추가할 수 있도록 한다.
[ 장점 ]
1. 이식성을 높여준다.
- 자신의 코드를 컴퓨터 하드웨어에 독립적으로 만들 수 있다. ( typedef를 이용해 시스템에 따라 다른 자료형의 저장 공간을 고정시킬 수 있으며, 컴퓨터 시스템이 달라질 경우 typedef정의만 변경하면 된다. 컴파일러가 size.t와 같은 자료형을 만들어 사용하는 이유와 같다. )
2. #define과 차이점
- 결과는 비슷하나 typedef는 컴파일러가 직접 처리해 훨씬 좋은 방법이다.
( typedef float VECTOR [2]; ) ---> define으로 불가능
3. 문서화의 역할
- 주석을 붙이는 것과 같은 효과가 있다.