使用带有doxygen的lint注释

use*_*872 9 c documentation lint doxygen code-comments

对于文档,我们通常必须创建一个附加文档,描述在代码中禁用任何lint消息时我们所做的操作(e.g. /* lint --e228).这将使它更容易使用doxygen(因为我们无论如何创建它).

虽然,我无法找到任何有关如何doxygen使用这些lint注释的解决方案.有没有人试过这个?是否有任何解决方案如何使用stric '/*lint'但无论如何添加它doxygen

谢谢!

jxh*_*jxh 2

这可以通过定义一个宏来扩展为 lint 表达式注释来实现,但在使用 扩展时使该宏扩展为不同的注释doxygen

技巧是使用-savePC-lint TM或 FlexeLint TM指令:

#ifndef LINT_CONTROL
#define LINT_CONTROL(X) /*lint -save X */ //lint X
#endif

int main () {
    int a; LINT_CONTROL(-e530)
    return a != a;
}
Run Code Online (Sandbox Code Playgroud)

然后,在doxygen配置文件中,您可以启用某些预处理器宏的扩展。特别是,我们可以改为LINT_CONTROL扩展为doxygen-ated 评论。

ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = YES
PREDEFINED             = "LINT_CONTROL(X)=//! lint control: X"
Run Code Online (Sandbox Code Playgroud)

或者,如果您有 FlexeLint TM,那么您可以修改隐藏的源代码,以便可以使用 doxygen 注释来触发 lint 控制。Gimpel 软件讨论论坛上对该技术进行了描述。(此链接似乎已失效,并且新的讨论论坛似乎不再包含引用的讨论。)

PC-lint 和 FlexeLint 是 Gimpel Software 的商标。