******
forest_internal.h:
struct forest_info {
    /* ... */
};
typedef struct forest_info forest;

/* 각종 forest 관련 함수들 */
******

******
forest_external.h:
struct forest_info;
typedef struct forest_info forest;

/* 각종 forest 관련 함수들 extern 선언 */
******

C언어에서 구조체 멤버를 private로 가린것마냥 코딩하는 방법이라고 나와있고

구조체를 추상화 타입으로 외부에 노출시켜서 디버깅과 안전한 코딩을 용이하게 한다고 하는데 이런걸 진짜로 쓴다고?