기존 구조체의 정의를 기반으로 구조체 정의

jsj

임의의 구조체가있는 경우 매크로를 사용하여 해당 구조체에 필드를 추가 할 수있는 방법이 있습니까?

예를 들면 :

struct foo{
    int a, 
    int b
};

MAGIC(foo, newtype, newname);

다음과 같이 평가됩니다.

struct foo{
    int a;
    int b;
};

struct magic_foo{
    int a;
    int b;
    newtype newname;

};

이것이 스트레칭이라는 것을 알고 있지만 이름에서 구조체의 정의를 검색하는 내장 매크로가있을 수 있다고 생각합니까?

Jens

전처리 기가 C 구문을 완전히 인식하지 못하기 때문에 직접적으로는 아닙니다 (토큰 대체 자로 만 작동하며 이전에 선언 된 유형에 대한 검사는 불가능합니다).

아마도 이것은 갈 방법입니다.

#define STRUCT { \
    int a;             \
    int b;             \
    EXTRA_MEMBER_DECL  \
}

#define EXTRA_MEMBER_DECL /* empty */
struct foo STRUCT;
#define EXTRA_MEMBER_DECL newtype newname;
struct bar STRUCT;

플랜 B는 중첩 된 구조체를 사용할 수 있습니다.

struct bar {
    struct foo;
    newtype newmember;
};

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

루비의 참조 배열을 기반으로 구조체 정렬

분류에서Dev

UI 객체를 기반으로 구조체의 반환 값을 결정하는 방법

분류에서Dev

미리 정의 된 값으로 구조체 초기화

분류에서Dev

구조체 정의?

분류에서Dev

다른 구조체 내부의 구조체 배열 초기화

분류에서Dev

여러 조건을 기반으로 구조체 정렬?

분류에서Dev

C의 typedef 구조체의 malloc 크기

분류에서Dev

구성 요소 구조 : 반응 라우터 경로를 기반으로 하나의 구성 요소 교체

분류에서Dev

QStringList의 특정 데이터로 구조체 채우기

분류에서Dev

구조체의 2D 벡터 크기를 조정하는 방법

분류에서Dev

서버 측 객체의 구조를 기반으로 백본 뷰 / 모델 생성

분류에서Dev

구조체 c의 기본값 [중복]

분류에서Dev

C의 구조체 초기화

분류에서Dev

구조체의 멀티 맵 만들기

분류에서Dev

C #의 구조체에 파일 읽기

분류에서Dev

구조체의 UUID 가져 오기

분류에서Dev

다른 구조체 var를 기반으로하는 신속한 설정 구조체 var (초기화 시도)

분류에서Dev

문자열을 기반으로 구조체 배열 정렬

분류에서Dev

포인터로 구조체 정의

분류에서Dev

여러 구조체의 최대 크기를 결정하는 GCC Preproccesor 매크로

분류에서Dev

사용자 정의 POD 구조체를 C ++로 기록하는 방법

분류에서Dev

구조체 배열의 임베디드 C ++ 정적 초기화

분류에서Dev

정확히 하나의 구조체 필드 읽기

분류에서Dev

구조체 내 고정 크기 배열의 메모리 할당

분류에서Dev

1 차원 구조체 배열의 정보로 2 차원 구조체 배열 채우기

분류에서Dev

구조체 멤버 함수의 값을 기반으로 상태 생성

분류에서Dev

다른 유형으로 정의 된 비트 필드를 포함하는 구조체의 크기

분류에서Dev

구조체의 C # StringBuilder 구조체에서 C DLL 가져 오기

분류에서Dev

구조체 하드 코딩 된 초기화 내의 C 구조체

Related 관련 기사

  1. 1

    루비의 참조 배열을 기반으로 구조체 정렬

  2. 2

    UI 객체를 기반으로 구조체의 반환 값을 결정하는 방법

  3. 3

    미리 정의 된 값으로 구조체 초기화

  4. 4

    구조체 정의?

  5. 5

    다른 구조체 내부의 구조체 배열 초기화

  6. 6

    여러 조건을 기반으로 구조체 정렬?

  7. 7

    C의 typedef 구조체의 malloc 크기

  8. 8

    구성 요소 구조 : 반응 라우터 경로를 기반으로 하나의 구성 요소 교체

  9. 9

    QStringList의 특정 데이터로 구조체 채우기

  10. 10

    구조체의 2D 벡터 크기를 조정하는 방법

  11. 11

    서버 측 객체의 구조를 기반으로 백본 뷰 / 모델 생성

  12. 12

    구조체 c의 기본값 [중복]

  13. 13

    C의 구조체 초기화

  14. 14

    구조체의 멀티 맵 만들기

  15. 15

    C #의 구조체에 파일 읽기

  16. 16

    구조체의 UUID 가져 오기

  17. 17

    다른 구조체 var를 기반으로하는 신속한 설정 구조체 var (초기화 시도)

  18. 18

    문자열을 기반으로 구조체 배열 정렬

  19. 19

    포인터로 구조체 정의

  20. 20

    여러 구조체의 최대 크기를 결정하는 GCC Preproccesor 매크로

  21. 21

    사용자 정의 POD 구조체를 C ++로 기록하는 방법

  22. 22

    구조체 배열의 임베디드 C ++ 정적 초기화

  23. 23

    정확히 하나의 구조체 필드 읽기

  24. 24

    구조체 내 고정 크기 배열의 메모리 할당

  25. 25

    1 차원 구조체 배열의 정보로 2 차원 구조체 배열 채우기

  26. 26

    구조체 멤버 함수의 값을 기반으로 상태 생성

  27. 27

    다른 유형으로 정의 된 비트 필드를 포함하는 구조체의 크기

  28. 28

    구조체의 C # StringBuilder 구조체에서 C DLL 가져 오기

  29. 29

    구조체 하드 코딩 된 초기화 내의 C 구조체

뜨겁다태그

보관