簡體   English   中英

C預處理器中的雙氧,如果

[英]Doxygen in C preprocessor if

我用Doxygen記錄了我的C代碼並遇到問題。 考慮以下示例:

在define.h中:

#ifndef DEFINES_H_
#define DEFINES_H_

#define ENABLED 1

#endif

在test.c中

#include <defines.h>

/**
 *  @brief  This is the first testfunction
 *  @return   void
 */
void testFunc1(void)
{
    //...do stuff
}

#if ENABLED
/**
 *  @brief  This is the second testfunction
 *  @return   void
 */
void testFunc2(void)
{
    //...do stuff
}
#endif

Doxygen找到了testFunc1並對其進行了很好的記錄,但是找不到testFunc2。 在.doxyfile中定義ENABLED不會解決我的問題。

有沒有辦法讓它運行? (注意,我需要在c-Project中定義ENABLED!)

[誤讀了源代碼片段]

您可能需要 #ifdef而不是 #if

#if的文檔中:

'#if'指令允許您測試算術表達式的值,而不是僅測試一個宏的存在。 它的語法是

 
  
  
   
   #if expression controlled text #endif /* expression */
  
   

expression是整數類型的C表達式,受嚴格限制。

對於 #ifdef

最簡單的條件是

 #ifdef MACRO controlled text #endif /* MACRO */ 

此塊稱為條件組 當且僅當定義了MACRO時, 受控文本才會包含在預處理器的輸出中。 我們說,如果定義了MACRO ,則條件成功,如果未定義,則條件失敗

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM