C语言 氧不记录一个又一个带有属性的变量



我有一个.c文件,其中声明了几个变量。其中一个具有属性__align(4),即声明为__align(4) static uint32_t myVar;

当我为这个源文件创建氧文档时,它只列出了在__align(4) static uint32_t myVar;之前声明的变量(myVar也不包括在文档中)。

的例子:

uint32_t var1;                     //documented by doxygen
static uint32_t var2;              //documented by doxygen
__align(4) static uint32_t myVar;  //NOT documented by doxygen
uint32_t var4;                     //NOT documented by doxygen

我怀疑氧看到__align()实际上是一个函数,然后停止寻找变量声明。

我如何让氧列出所有我声明的变量?一个"hacky"解决方案是在变量部分的底部声明对齐的变量,但对齐的变量仍然不会包含在文档中。

任何帮助都是非常感谢的:)

的问候

这个问题有几点需要注意。

  • 在示例中没有任何文档,因此我们需要设置EXTRAC_ALL=YES(参见https://www.doxygen.nl/manual/config.html#cfg_extract_all)或记录变量
  • 的许多变量都是static,这意味着我们还需要设置EXTRACT_STATIC=YES(参见https://www.doxygen.nl/manual/config.html#cfg_extract_static)
  • myVar的声明具有非标准属性__align,这必须以与属性__attribute__类似的方式处理,参见https://www.doxygen.nl/manual/preprocessing.html),所以:
    • PREDEFINED = __align(x)=
    • MACRO_EXPANSION = YES

所以完整的Doxyfile看起来像:

EXTRACT_STATIC=YES
PREDEFINED = __align(x)=
MACRO_EXPANSION = YES

和源代码:

/// file
/** some docu */
uint32_t var1;                     //documented by doxygen
/** some docu */
static uint32_t var2;              //documented by doxygen
/** some docu */
__align(4) static uint32_t myVar;  //NOT documented by doxygen
/** some docu */
uint32_t var4;                     //NOT documented by doxygen

和所有的文档都是按照预期的。

相关内容

  • 没有找到相关文章

最新更新