【发布时间】:2014-02-11 09:41:35
【问题描述】:
我需要用 doxygen 记录一个项目,但还需要忽略一些宏,我在我的代码的小部分中使用这些宏来提高可读性,因为这些宏出现在文档中是没有意义的。
这是一个最小的例子(我主要使用宏来索引一些 C 风格的 2D 或 3D 数组):
#include <cstring>
/*! \file notes.cpp
\brief A test for macros and doxygen
*/
/// my main function
int main ()
{
double loc_arr[9][4][4];
memset (loc_arr, 0.0, 144 * sizeof (double));
#define BLOCK(i) (&(loc_arr[i][0][0]))
for (int ii = 0; ii < 9; ++ii)
{
memset (BLOCK(ii), double(ii), 16 * sizeof (double));
}
#undef BLOCK
return 1;
}
当我 doxy 时,使用以下设置:
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
我得到这个:
请注意,我可以避免记录宏的唯一方法是设置 ENABLE_PREPROCESSING = NO ,这对我来说是个问题,因为它还消除了页面顶部的包含图。
【问题讨论】:
标签: doxygen preprocessor-directive