[완료] 전처리기로 #undef, #define을 하는 방법
글쓴이: okdongil / 작성시간: 금, 2009/02/13 - 9:01오전
안녕하세요 코딩을 하다가 아래 처럼 하고 싶은데 잘 되지 않아서 질문을 드립니다.
#define ABC 1
#define REDEF(A) \
extern int A##_val; \
#undef A
#define A A##_val
......
// ABC Redefine
REDEF(ABC)
이렇게 해서 ABC를 Redefine해서 사용하고 싶은데요.
아래와 같이 에러가 나네요..
Error: #52: expected a macro parameter name
방법이 없을까요?
이것 저것 많이 시도했지만, 답을 못 찾았습니다.
감사합니다.
Forums:
일단 이렇게
일단 이렇게 했습니다.
그리 맘에 들지는 않지만...
a.h
#if defined(_EXTERN_)
#define REDEF(A) extern int A##_val;
#elif defined(_UNDEF_)
#define UNDEF #undef
UNDEF A
#elif defined(_DEF_)
#define DEFINE #define
DEFINE A A##_val
#endif
b.h
#define (_UNDEF_)
REDEF(A)
#undef _UNDEF_
#undef REDEF
#define (_EXTERN_)
REDEF(A)
#undef _EXTERN_
#undef REDEF
#define (_DEF_)
REDEF(A)
#undef _DEF_
#undef REDEF
b.h를 precompile 한 후에 결과물을 include했습니다...
댓글 달기