C언어 매크로 사용 중 에러가 납니다.
글쓴이: smallhuman / 작성시간: 화, 2014/03/04 - 10:57오후
#include <stdio.h> #include <stdbool.h> struct list_elem { struct list_elem *prev; struct list_elem *next; }; (중략) struct record { char s_no[10]; char s_name[20]; char dept[20]; char addr[40]; struct list_elem elem; }; (중략) #define list_entry (LIST_ELEM, STRUCT, MEMBER) \ ((STRUCT *) ((char *) &(LIST_ELEM)->next \ - offsetof (STRUCT, MEMBER.next))) int main(void){ struct record *a = (struct record*) malloc(sizeof (struct record)); struct record *b; struct list_elem *c = &(a->elem); b = list_entry(c , struct record, elem); printf("%x \\ %x \n", a, b); return 0; }
저기에서 c = list_entry 부분에서 "expected expression before 'struct'" 라는 에러가 나네요.
음... 다른 프로젝트에서는 잘 쓰던 매크로인데 왜 안 되는지 영문을 모르겠습니다..;;
Forums:
offsetof 에 대한 정의가
offsetof 에 대한 정의가 빠져있어서요..
stddef.h 를 인크루드하세요~
댓글 달기