Doyxgen一次性宏扩展/扩展命令

Doyxgen onetime macro expansion / expansion command

我有一些代码,如下例所示:

/** @file HelloPi.c */

/** The definition of pi */
#define PI 3.1415

/** @brief The main function.
 *  @details Prints the value of #PI, which is actual defined as 3.1415. */
void main()
{
  printf("The value of pi is %f\n",PI);
}

在我的 doxygen 文档中,我一般不希望对 PI(和其他定义)进行宏扩展。 但是在文档中的一段中我需要 pi 的值(例如@details description of the main function)。

是否可以使用命令或其他方式在文档的这一部分扩展宏?像 /** @details ...the value of #PI is $(PI).*/

我只知道适用于整个文档的内置 MACRO_EXPANSION 标签:https://www.doxygen.nl/manual/preprocessing.html :-/

感谢您的帮助:)
一月

编辑: 添加另一个可能更好地描述我的问题的示例:

/** @file ErrorHandling.c */


#define ERR_CODE_POWERUNIT 1001 ///< Error in power unit */
            /** @page errors
             *  [value of ERR_CODE_POWERUNIT ] means \copybrief ERR_CODE_POWERUNIT */

void errHandler(int error)
{
  if(error=ERR_CODE_POWERUNIT)
    printf("Error %d occur\n",ERR_CODE_POWERUNIT);
}

在我想要的文档中: “1001 表示动力装置错误”

在 doxygen 中,无法(仅)对文档中的预定义变量进行转换。 您在文档中使用了环境变量 $(PI),但这非常麻烦,因为您每次都必须 st 环境变量。

更好的解决方案是使用 ALIASES,例如:

ALIASES += pi=3.1415

ALIASES +\= "The value of PI = 3.14159265359..."

用它来定义一个命令\pi,它可以在文档中使用,并将被别名中的文本/命令替换。

/** @details ...the value of #PI is \pi.*/

会导致类似的结果(由 head:

  ...the value of #PI is 3.1415