헤더파일에 있는 스트럭쳐 구조는 런타임에 파싱하는 좋은 방법

ssehoony의 이미지

소스에 있는 구조체 선언문을 런타임때 파싱해서 알고 싶습니다.
가령 이런 기능이 필요하다는거져
즉, 스트럭쳐 안에 있는 데이터 타입과 필드명. 그리고 그 타입의 사이즈등을
스트럭쳐 구성내용을 파싱해서 출력해주고 싶다는거져.
이런게 있으면 로그파일을 남길때 스트럭쳐 내용을 손쉽게 출력할 수 있고
후에 스트럭쳐 구조가 바뀌어도 스트럭쳐 내용출력부분을 수정하지 않아도
되도록 말이져.
이런 것 파싱하는게 컴파일러에는 당연히 있을것 같은데
그냥 쉽게 사용할 수 있는 라이브러리가 있는지 궁금하고요
만약 없다면 어떻게 구현하면 효율적인 구현이 될까요?
yacc 같은걸 이용해야 하나요? 경험이 부족해서 일단 부담스럽긴한데....
이번기회에 공부해도 좋긴하겠지만 시간이.......

하튼 좋은 조언 많이 부탁 드립니다.

feanor의 이미지

stddef.h 라는 헤더 파일에 offsetof 라는 매크로가 있는데 원하시는 것과 비슷할지 모르겠네요. 다음과 같은 식으로 씁니다. (매크로니까 런타임은 아니고 컴파일 타임에 값이 들어갑니다.)

#include <stdio.h>
#include <stddef.h>

typedef struct {
    int a;
    int b;
} test;

int main()
{
    printf("%d\n", offsetof(test, b));
    return 0;
}

--feanor