2012-10-11 3 views
3

매크로 확장 내에서 매크로 NAME을 문자열로 사용하고 싶습니다.매크로 NAME 확장 문자열 C/C++

예 :

#define DEBUG_TEST(a, ...) printf("DEBUG_TEST::%s (%d) : " a, __FUNCTION__, __LINE__, ##__VA_ARGS__) 

가 exapansion에서 더 이상 "DEBUG_TEST"필요하지 않습니다 뭔가 변경하려면,하지만 뭔가 같은 : 내 예를 에서 물론

#define DEBUG_TEST(a, ...) printf(__MACRO__ "::%s (%d) : " a, __FUNCTION__, __LINE__, ##__VA_ARGS__) 

__ MACRO __ 존재하지 않습니다 ...

+0

질문이 명확하지 않습니다. '__MACRO__' 대신에 무엇을 원합니까? – user93353

+0

내가 만난 전처리기에 그러한 기능이 없습니다. –

+0

@ user93353 : 예제에서 매크로 (DEBUG_TEST)의 이름을 삽입하는 구문으로 __MACRO__을 대체하는 무언가가 필요합니다. (저는 __MACRO__을 사용하여 __FUNCTION__과 같은 익숙한 구조를 보여 줬습니다.) * 매크로 *에 대해 – user1464125

답변

4

나는 이것이 가능하지 않다고 믿습니다. 내 제안은 인수로 매크로의 이름을 사용하는 다른 매크로를 만드는 것입니다. 그런 다음 다른 매크로에서이 매크로를 사용하십시오.

+0

+1. 무슨 말이야! – iGbanam