我目前在C文件中有几个#Define,这些#Define将一些功能关闭到用于测试的硬件。但是,我想在不确定的情况下将它们记录下来。

例如:

这很好:

/// \def SIMULATE_SOME_HW_INTERFACE
/// Define this when you want to simulate HW interface.
#define SIMULATE_SOME_HW_INTERFACE

当您将#Define更改为#UNDEF时,您会在Doxygen中获得警告,并且它不会显示在Doxygen生成的输出中。我想记录此#Define的定义或未定义。

我如何强制doxygen记录#undef ???

有帮助吗?

解决方案

将它们定义在仅由doxygen包含的标头文件中(从主源放置在单独的目录树中)。

通过用定义仅在doxygen设置中定义的定义来保护此标头文件,例如:

#ifdef ONLY_FOR_DOXYGEN

/// \def SIMULATE_SOME_HW_INTERFACE
/// Define this when you want to simulate HW interface.
#define SIMULATE_SOME_HW_INTERFACE

#endif

我已经用它有条件地包括 轻量级类定义 对于MFC基类等事情,因此它们是类层次结构的基础,而无需解析所有MFC。

其他提示

我通过在#Define下添加#UNDEF找到了一种kludgy的方式。这样,它是为doxygen定义的,但立即为编译器未定义。

/// \def SIMULATE_SOME_HW_INTERFACE
/// Define this when you want to simulate HW interface.
/// Comment out #undef to simulate HW interface
#define SIMULATE_SOME_HW_INTERFACE
#undef  SIMULATE_SOME_HW_INTERFACE

我试图弄清楚如何使用预定义的选项在doxyconfig文件中设置simulate_hw_interface。无法正常工作。因此,这是我到目前为止最好的解决方案。

我解决了我在主要标题中记录这样的编译器的问题:

/**
 * \defgroup flags Compilerflags
 */

/**
 * \def MY_FLAG
 * \ingroup flags
 * Dokumentation....
 */
#ifndef MY_FLAG
#define MY_FLAG
#undef MY_FLAG
#else
#define MY_FLAG
#endif

这样,一切都很好:doxygen和编译,您可以继续在命令行中指定标志...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top