2012-04-13 2 views
4

일부 doxygen 설명서에서 태그 자체가 아닌 #define의 내용을 표시하고 싶습니다.정의 된 값을 표시하는 방법

동작을 10 회 수행됩니다 예를 들어, C 파일에 나는

#define REPEAT_N_TIMES 10 

지금 내 문서에 내가 표시 할 수 있습니다. 내가 \ref REPEAT_N_TIMES를 사용하는 경우

, 그것은 표시

이 동작은 REPEAT_N_TIMES 시간

하지 링크 자체를 링크의 내용를 표시하는 방법이 있나요 이루어집니다 예를 들어 \ValueOf(\ref REPEAT_N_TIMES) 또는 \contentOf(\ref REPEAT_N_TIMES)과 같은?

업데이트 : 내 Doxygen을의 설정은 다음과 같습니다

// Configuration options related to the preprocessor 

ENABLE_PREPROCESSING = YES 
MACRO_EXPANSION  = YES 
EXPAND_ONLY_PREDEF  = YES 
SEARCH_INCLUDES  = YES 
INCLUDE_PATH   = 
INCLUDE_FILE_PATTERNS = 
PREDEFINED    = WXUNUSED()= 
EXPAND_AS_DEFINED  = 
SKIP_FUNCTION_MACROS = YES 

MACRO_EXPANSION 설정은 매크로의 "세부 사항"을 변경하는 것 같다. 그러나 매크로의 이름이나 내용을 선택하는 방법은 없습니다. \ref하지 않는 명령을 사용하는 것은 올바른 방법이 될 것 같다 : 그것은 C에 아마도 유사한 운영자 또는 내가 사용할 수있는 기능, 거기에 "뭔가"

의에 "뭔가"가 아닌 컨텐츠를 의미 어디 \ref something 대신 \ref *something과 같은 것을 사용할 수 있습니까?

+0

답변보기 : http://stackoverflow.com/a/1510919/623518 기본적으로 * 주석은 사전 처리 지시문 구문 분석 * 전에 발생하는 "번역 단계"에서 단일 공백으로 대체됩니다. 따라서 사전 처리 **는 주석 내의 지시문을 대체하는 데 사용할 수 없습니다. 이 방법은 입력 필터를 사용하는 것이 유일한 방법입니다. 또는 정의를 참조하십시오 (내 업데이트 참조). – Chris

+0

가능한 복제본 : http://stackoverflow.com/questions/9299608/expand-non-function-macros-in-doxygen-documentation-for-c – Chris

답변

0

preprocessing의 doxygen 설명서 페이지에 필요한 정보가 모두있는 것 같습니다. 첫 번째 단계로 귀하의 문서에 다음 YES에 doxygen이 구성 파일에서 MACRO_EXPANSION 플래그를 설정하십시오 (필요한 재귀 경우)하는 인 doxygen이 설명서에서 언급 한 바와 같이

The action is done REPEAT_N_TIMES times. 

, 이것은 모든 매크로 정의를 확대 할 포함 종종 너무 많이. 따라서 구성 파일의 EXPAND_ONLY_PREDEFEXPAND_AS_DEFINED 설정을 사용하여 확장 할 매크로를 정확하게 지정할 수 있습니다. 예를 들어,

EXPAND_ONLY_PREDEF 구성 파일 = YES
EXPAND_AS_DEFINED = REPEAT_N_TIMES

을 설정해보십시오.

UPDATE : 나는이 좀 더 들여다 @의 spamy의 의견에 따라 그리고 내가 위에서 언급 한 방법은 소스 코드 내에서 즉에만 매크로가 확장된다, 주석 블록 내에서 매크로 작동하지 않는 것 같다. 예를 들어, doxygen sourceforge 페이지의 this post을 참조하십시오. 이 게시물에 따르면 메모 블록 내에서 매크로 확장을 수행하는 유일한 방법은 INPUT_FILTER 구성 파일 설정을 사용하는 것입니다.

INPUT_FILTER = sed /REPEAT_N_TIMES/10 

경고 같은 것을 사용 : 위의 INPUT_FILTER을 테스트되지 않았습니다.

INPUT_FILTER을 사용하지 않으려면 this 다른 스레드에 대한 대답이 가장 좋습니다. 기본적으로 은 매크로를 문서화 할 수 있으므로 문서 독자는 쉽게이라는 실제 값을 찾을 수 있습니다. 따라서 #define에 설명서를 추가하고 문서의 다른 곳의 문서는 \ref에 그냥 추가하십시오.

+0

내 구성 : # ----------- -------------------------------------------------- -------------- # 전 처리기와 관련된 구성 옵션 # -------------------------- ------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = YES 는 SEARCH_INCLUDES = YES는 의 include_path = INCLUDE_FILE_PATTERNS = 미리 정의 WXUNUSED =() = EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES – spamy

+0

보통, 그것은 참조 ms 주석 블록 내의 매크로 확장은'INPUT_FILTER'를 사용해서 만 가능합니다. 내 업데이트를보십시오. – Chris

관련 문제