【问题标题】:Doxygen - Expand macros but ignore #if?Doxygen - 扩展宏但忽略#if?
【发布时间】:2011-07-19 05:28:10
【问题描述】:

是否可以告诉 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 也显示在文档中。有没有办法在忽略#ifs 的同时记录这两个宏?

【问题讨论】:

    标签: macros c-preprocessor doxygen


    【解决方案1】:

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

    默认情况下,如果 Doxygen 在标头中找到声明的文档并在源文件中找到相应定义的文档,则将使用标头中的文档。在这种情况下,您可以通过仅在头文件中放置 Doxygen 标记来利用这一点。通常,跨平台的接口是相同的,您将只有一个标头,但每个平台都有多个实现,可以在单独的源中或使用条件编译。

    【讨论】:

      猜你喜欢
      • 2014-02-24
      • 2021-07-17
      • 2013-07-04
      • 1970-01-01
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      • 1970-01-01
      相关资源
      最近更新 更多