[英]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.