[C, C++] typedef struct의 포인터 별칭(alias)

다른 글

[C, C++] typedef 사용 이유

typedef로 정의한 구조체의 포인터 별칭

아래 코드와 같이 typedef로 정의한 구조체의 별칭에 포인터가 추가적으로 존재하는것을 여러 소스코드에서 종종 볼 수 있다.

typedef struct test_st
{
    int data;
}test_st, *test_st_pointer;

typedef struct는 여러개의 별칭을 가질 수 있다. typedef를 사용하여 구조체를 선언할 때 struct를 생략했듯이 포인터 별칭을 두게 되면 포인터 구조체를 선언할 때 간편하다.

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

typedef struct test_st
{
    int data;
}test_st, *test_st_pointer;

int main()
{
    test_st test;
    test_st_pointer test_pointer;
    // test_st_pointer *test_pointer; ----> 틀린 선언 방법
    test_pointer = &test;
    test.data = 10;
    printf("%d\n", test_pointer->data);
}

Leave a Comment