Doxygen - 扩展宏但忽略#if?

时间:2011-03-20 18:05:56

标签: macros c-preprocessor doxygen

是否可以告诉Doxygen扩展宏但忽略其他预处理器指令?

考虑以下因素:

#if defined(linux)
  #define OS_LINUX
  int function() { /* ... */ }
  // Other functions defined for Linux
#elif defined(__WIN32__)
  #define OS_WINDOWS
  int function() { /* ... */ }
  // Other functions defined for Windows
#else
  #error "OS unsupported."
#endif

在这种情况下,我希望显示Windows和Linux的功能,但我也希望宏OS_LINUX和OS_WINDOWS也显示在文档中。有没有办法记录两个宏而忽略#if s?

1 个答案:

答案 0 :(得分:2)

不,你不能这样做,你必须单独为每个配置构建文档。但是,如果Windows和Linux都定义了相同的接口,那么在任何情况下,两种功能的文档肯定是相同的吗?

默认情况下,如果Doxygen在标题中找到声明的文档,并在源文件中找到相应定义的文档,则将使用标题中的文档。在这种情况下,只需在头文件中放置Doxygen标记,就可以使用它。通常,接口在跨平台上是相同的,您将拥有单个标头,但每个平台有多个实现,可以在不同的源中使用,也可以使用条件编译。