gpt4 book ai didi

c - 如何检查 doxygen\return 语句的正确性?

转载 作者:太空宇宙 更新时间:2023-11-04 02:08:06 26 4
gpt4 key购买 nike

我继承了一些在注释中有doxygen注解的C源代码。由于 bit rot,一些 \return 注释的注释现在是谎言,即函数已被转换为 return void,但 \return 注释仍然存在并且另说。

例子:

/*!
* \brief The foo function
* \return OK if successful, ERROR otherwise
*/
void foo(void)
{
...
}

现在我想找到所有这样的文件。我想到了使用 grep/sed/awk/perl 来查找 \return,然后打印以 void 开头的下一行。一个简单的

 grep -E '(\\return|^void)' file ...

还打印来自非 void 函数的所有 \return 注释。我敢肯定,如果看到 ^void 行,有一种简单的方法可以打印前一个 \return 行。

最佳答案

如果您的所有函数及其前面的评论都遵循您发布的样式,这可能就是您所需要的:

awk '/\\return/{cmt=$0} /^[[:alpha:]]/{ if (/^void/ && cmt) print cmt ORS $0; cmt=""}' file

例如:

$ cat file
/*!
* \brief The foo function
* \return OK if successful, ERROR otherwise
*/
void foo(void)
{
...
}

/*!
* \brief The bar function
* \return OK if successful, ERROR otherwise
*/
int bar(void)
{
...
}

$ awk '/\\return/{cmt=$0} /^[[:alpha:]]/{ if (/^void/ && cmt) print cmt ORS $0; cmt=""}' file
* \return OK if successful, ERROR otherwise
void foo(void)

关于c - 如何检查 doxygen\return 语句的正确性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18467836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com