2014-09-27 2 views
1

C 프로젝트를 문서화하기 위해 doxygen 1.8.8을 사용합니다. AUTOLINK_SUPPORTYES으로 설정했습니다.Doxygen : 매크로 및 enum 요소의 자동 참조

말은, 내가 매크로 그렇게 문서화 : 다음

/** 
* My macro 
*/ 
#define MY_MACRO 

, 나는이 같은 일부 기능에 대한 설명에서이 매크로를 언급 :

이 경우
/** 
* My function uses `MY_MACRO` heavily 
*/ 
void my_func(void) { ... } 

, MY_MACRO ISN을 '참조. 많은 실험을 거친 후 참조 할 수 있도록 doxygen을 만드는 몇 가지 방법을 찾았습니다.

  • \ref MY_MACRO. 나는 그것을 좋아하지 않는다. 왜냐하면 (a) 코멘트를 쓰고 읽는 것이 그렇게 편리하지 않기 때문이다. (b) 글꼴이 고정 폭 글꼴이 아닙니다. 내가 backticks와 결합하려고했지만, 그것은 작동하지 않습니다;
  • 다음과 같이 지정하십시오 : MY_MACRO(). 분명히,이 괄호는 매크로가 매개 변수화 된 것처럼 제안하기 때문에 나는 그것을 좋아하지 않지만, 그렇지 않습니다.
  • 댓글 하단에 다음과 같이 지정하십시오 (@see MY_MACRO). 나는 그것을 읽는 것이 편리하지 않기 때문에 그것을 좋아하지 않는다. 매크로가 인라인으로 참조된다면 훨씬 더 좋을 것이다.

그래서 어떻게 함수에 대한 주석에서 참조하도록 만드시겠습니까?

는 UPD : 내 doxyfile : http://vpaste.net/FuIk4autolink docs에 명시된 바와 같이

+0

ENABLE_PREPROCESSING, MACRO_EXPANSION, PREDEFINED, EXPAND_ONLY_PREDEF, EXPAND_AS_DEFINED에 대한 설정은 무엇입니까? – Rich

+0

@Rich ENABLE_PREPROCESSING = 예, MACRO_EXPANSION = 아니오, PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS, EXPAND_ONLY_PREDEF = 아니요, EXPAND_AS_DEFINED가 비어 있습니다. 내 질문 업데이트 : doxyfile을 완료하는 데 추가 된 링크 –

+0

이상한, 전에이 동작을 보지 못했어요. SKIP_FUNCTION_MACROS를 사용 중지하면 문제를 해결할 수 있습니까? – Rich

답변

0

, 우리는 #와 매크로 이름을 열거 항목 또는 열거 이름 앞에 추가해야한다는 :

/** 
* My function uses `#MY_MACRO` heavily 
*/ 
void my_func(void) { ... } 

다음, MY_MACRO은 링크가된다 .