2010-03-03 7 views
1

나는 공급 업체의 도구에서 생성 기능에 무리가가 나에 의해 정의 될 필요가있다. 이 기능들 각각의 내부 기능이 모두 동일하므로 매크로를 사용하여 내 인생을 더 쉽게 만들 수 있다고 생각했습니다. 그때 쓰기 내 코드에서잘못된 전처리 토큰 경고 메시지

#define HANDLE_FUNCTION(x)    \ 
    void <function_prefix>_ ## x ## (void) \ 
    {          \ 
    x ## _Flag = TRUE;     \ 
    } 

: 다음과 같이

pasting "<function_name>" and "(" does not give a valid preprocessing token 

지금, 내 매크로를 정의 : 여기

는 잘못된 경고입니다

HANDLE_FUNCTION(fn1) 
HANDLE_FUNCTION(fn2) 

... 등등

임의의 thoug 왜 이런 일이 일어날까요?

답변

5

두 번째 ##을 제거하면 사용하지 않습니다 (하나의 심볼을 function_name(으로 만들고 싶지 않음).

+0

물론 ... 감사합니다! – espais