구조체 typedef, enum

유명현·2022년 1월 2일
0

C언어를 학부 때 공부하는 걸로 실무에 와보니 구조체, 함수 포인터, 전처리등이 부족한점이 많아 다시 공부할겸 정리하고 한다.

먼저 구조체는 아래와 같이 형식으로 작성된다.

struct Person 
{
    char name[20];
    int age;
    char address[100];
};

하지만 이렇게 작성하는 경우 Person이라는 구조체를 만들 때마다 struct Person 변수명; 이렇게 작성하므로 잘 사용하지 않는다.

보통 아래와 같이 typedef하여 코드작성 시 더욱 편하게 작성한다.

typedef struct _Person 
{
    char name[20];
    int age;
    char address[100];
}person;   //구조체 변수 선언 시 struct 없이 구조체 별칭으로 변수 선언 가능 

typedef로 특히 enum(열거형)으로 선언할 떄 사용하면 편하다.
예를 들어 led 색상이 빨강, 파랑, 초록 ,보라 이렇게 4가지 색상이 존재한다며

typedef enum
{
    LED_RED = 0,
    LED_BLUE,
    LED_GREEN,
    LED_PURPLE;
}led_color_t; 

위와 같이 만들면 직접 led_color_t 변수를 선언한 후에 색상 이름을 넣으면 지금 변수에 어떤 값이 들어가 있는지 상수를 입력한것 보다 코드가독성이 높다.

또한 #define으로 했으면 #define을 4번해야하고 코드가 길어지면 어떤 변수에 들어가는 매크로인지 햇갈릴 때가 많은데 이것을 해결 해주기 위한 것이 typedef 열거형 구조체이다.

profile
기억보다 기록을

0개의 댓글