CS/자료구조
[C언어] typedef/enum
하루설렘
2021. 12. 8. 20:31
typedef 함수 (형 재정의)
특정 element에 대해 미리 type (int, long, double, pointer 등) 지정해서 사용하는 함수이다.
문법은 다음과 같다.
typedef type element
- 장점 : 이식성과 수정 효율성이 좋다. 예를 들어, 프로그래밍 컨셉이 바껴 특정 element의 type을 int형 -> double형으로 변경할때
// typedef 사용 예시
typedef int key_t;
// 포인터형도 typedef를 사용해서 *없이 선언할 수 있다.
typedef int* intPtr;
intPtr p, q;
열거형(enum)
- 변수가 갖는 값에 의미를 부여해 프로그램 가독성을 높임
- 컴파일러는 열거형 멤버들을 정수형 상수로 인식 (문자도 indexing으로 사용 가능)
enum의 문법은 다음과 같다.
//문법
enum 열거형 이름{상수 이름};
//ex
enum week{SUN, MON, TUE, WED, THU, FRI, SAT};
//0~6이라는 숫자로도 인식한다.
#include <stdio.h>
enum season
{
SPRING, SUMMER = 2, FALL, WINTER
};
int main(void)
{//enum이라는 키워드를 적어야하는데 Typedef를 사용하면 안적어도됨.
enum season birthday = FALL;
printf("birthday : %d \n", birthday);
return 0;
}
Switch 조건문과 같이 쓰면 좋다.
#include <stdio.h>
enum Action {
Attack = 1,
Move,
Jump,
Hide
};
int main()
{
enum Action skill; // 열거형 변수 선언
skill = Attack; // 열거형 값 할당
switch (skill)
{
case Attack: // 열거형 값이 Attack일 때
printf("Attack\n");
break;
case Move: // 열거형 값이 Move일 때
printf("Move\n");
break;
case Jump: // 열거형 값이 Jump일 때
printf("Jump\n");
break;
case Hide: // 열거형 값이 Hide일 때
printf("Hide\n");
break;
default:
break;
}
return 0;
}