2011-04-21 60 views
3

我已經定義了以下宏,並嘗試在生成文檔時將其展開。Doxygen:如何使用EXPAND_AS_DEFINED

#define GETSET(param) \ 
bool CYNOVE_Enable##param(postproc_ctx_t ctx, bool enable) \ 
{               \ 
struct postproc_ctx * c;         \ 
c = (struct postproc_ctx *)ctx;       \ 
c->do_##param = enable?1:0;        \ 
return TRUE;            \ 
}               \ 

在doxygen的,如果我使用:

MACRO_EXPANSION = YES 

然後,當我使用它的宏展開。 但是,如果設置:

MACRO_EXPANSION = YES 
EXPAND_ONLY_PREDEF = YES 
EXPAND_AS_DEFINED = GETSET 

宏沒有擴展

因爲我認爲,答案之一是錯誤的,但評論只是吮吸任何冗長的解釋,讓我補充我怎麼覺得這應該工作。

根據doxygen文檔和此link,PREDEFINED和EXPAND_AS_DEFINED服務於不同的目的。我知道EXPAND_AS_DEFINED用於選擇性地擴展給定的宏,因爲它是在源代碼中定義的,因此它的名字是PREDEFINED,這裏給予Doxygen宏的意義。

回答

0

我認爲這是正如名稱所述,它只會擴展預定義的宏,如果這樣做。你應該在你的Doxygen文件中加入類似

PREDEFINED += GETSET(param)="..." 

順便說一句,因爲你正在使用bool

  • enable?1:0應該只是enablebool是C.
  • 0閒來無事和 1
  • TRUE應該true