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

Macros Doyxgen一次性宏扩展/扩展命令,macros,doxygen,preprocessor,code-documentation,variable-expansion,Macros,Doxygen,Preprocessor,Code Documentation,Variable Expansion,我有一些类似以下示例的代码: /**@文件HelloPi.c*/ /**pi的定义*/ #定义PI 3.1415 /**@简要介绍主要功能。 *@details打印#PI的值,实际定义为3.1415*/ void main() { printf(“pi的值是%f\n”,pi); } 在我的doxygen dokumentation中,我通常不希望对PI(和其他定义)进行宏扩展。 但在文档中的一段中,我需要pi的值(例如,主函数的@details描述) 是否有可能在文档的这一部分使用命令或其他方

我有一些类似以下示例的代码:

/**@文件HelloPi.c*/
/**pi的定义*/
#定义PI 3.1415
/**@简要介绍主要功能。
*@details打印#PI的值,实际定义为3.1415*/
void main()
{
printf(“pi的值是%f\n”,pi);
}
在我的doxygen dokumentation中,我通常不希望对PI(和其他定义)进行宏扩展。 但在文档中的一段中,我需要pi的值(例如,主函数的@details描述)

是否有可能在文档的这一部分使用命令或其他方法展开宏?类似于
/**@details…PI的值是$(PI)。*/

我只知道适用于整个文档的内置宏扩展标记::-/

感谢您的帮助:)
一月

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

/**@文件ErrorHandling.c*/
#在电源单元中定义错误代码\u电源单元1001//
在我想要的文档中:
“1001表示动力装置错误”

在doxygen中,不可能(仅)转换文档中的预定义变量。 您在文档中使用了一个环境变量
$(PI)
,但这相当麻烦,因为您每次都必须测试环境变量

更好的解决方案是使用
别名
,如:

ALIASES += pi=3.1415

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

/** @details ...the value of #PI is \pi.*/
会导致类似(头部:


doxygen的哪个版本?版本是1.18.13(debian LTS版本)但是更新到1.9.1是可能的。当然建议这样做。嗨,Albert,当我使用别名时,我总是引用配置文件中的值,而不是代码中的值。所以我需要在源代码和配置中定义我的宏。另一个例子:PI不是PI,而是向用户显示的错误代码:在代码中我有
#define POWER_ERROR 1001
并在代码中使用宏。但是用户只得到了1001。如果能得到1001表示“电源单元中的错误”的文档,那就太好了。事实上,我忘了提到您必须将信息加倍(我想过,但忘了写下来)。我还没有得到评论的第二部分,文本“电源装置中的错误”也必须可用,所以为什么不将其添加到别名中,就像
别名+=err\u 1001=“1001,即电源装置中的错误”
别名+=err\u 1001=“电源装置中的错误”
并在文档中使用
\err\u 1001
是有可能的。无论如何,你需要写两次。一次在代码中,一次在其他地方。我想我会这样做:`/**@page errors 1001意味着\copybrief err\u code\u POWERUNIT*/``(上面的例子)。所有内容都在一个位置/文件中。唯一要做的是将每只手的“1001”写入文档页面。因此,需要注意复制和粘贴其他错误代码:)但其他开发人员不需要查看不同的文件。也许是最简单的方法。谢谢你的帮助,艾伯特!:)文本的copybrief解决方案看起来非常有效。考虑到这一点,你可能也会成功wilt
alias+=“ERR{1}=“\1意味着\copybrief ERR\u code\u1
并在文档中使用:
\ERR{1001}
/** @details ...the value of #PI is \pi.*/
  ...the value of #PI is 3.1415