2012-06-03 3 views
7

따라서 offsetof(struct, field)은 일반 구조 안에있는 필드의 상대적 오프셋을 반환합니다. 하지만 중첩 된 구조 내부에서 필드의 상대적 오프셋을 가져 오는 방법이 있습니다.중첩 된 구조에서 상대 오프셋 찾기

struct my_struct { 
    int a; 
    struct { 
     int b; 
     int c; 
    } anonymous_struct; 
} 

b의 오프셋 (offset) (런타임) my_struct-c 상대를 얻을 수있는 방법이 있습니까.

답변

12

예, 여전히 offsetof을 사용할 수 있습니다.

예. offsetof

size_t boff = offsetof(struct my_struct, anonymous_struct.b); 

규정은 부재-부호statict;,)는 어드레스 정수로 평가 &(t.부재-부호 부여되도록이어야한다. 구성원 지정자은 간단한 식별자 일 필요는 없습니다.

+0

그게 제가 시도하지 못한 유일한 조합이었습니다. 10 배 – skyel

관련 문제