PC-lint 抑制 `/* ... */` 块注释中的错误

问题描述 投票:0回答:1

我有一个文档评论,例如:

/**
 * See [datasheet][1] for details.
 *
 * [1]: https://example.com
 */
void my_func(void);

PC-lint 很沮丧,因为

note 9259: C comment contains '://' sequence [MISRA 2012 Rule 3.1, required]
。我想禁用此警告/注释。

摘自

e9259
的 PC-lint 手册:

[9259] C 注释包含“://”序列

消息 9059 报告 C 注释包含可能是 C++ 注释的情况,例如序列“//”。由于在评论中包含 URL 是一种常见做法,因此当 '//' 序列前面紧跟着一个 ':',以防止在以下情况下发出消息:

/* 详情请参阅 http://www.gimpel.com */

此消息(即消息 9529)通过报告 9059 未报告的实例来填补空白。

以及

e9059
的 PC-lint 手册:

[9059] C 注释包含 C++ 注释

在 C 风格注释中看到 C++ 风格注释。这可能会令人困惑。

我尝试将

!e9259
以及
lint !e9259
附加到有问题的行,但它们不起作用。我不能做类似
/*lint !e9259
的事情,因为 PC-lint 然后会在块注释中抱怨
/*
。出于同样的原因,
//lint !e9259
不起作用。我也无法将文档注释包装在
/*lint -save -e9259*/
/*lint -restore*/
中,因为这会破坏 doxygen 对函数文档注释的解析。

c misra pc-lint
1个回答
0
投票

MISRA C:2012 规则 3.1 有以下规则例外:

    注释中允许使用
  1. {scheme}://{path} 形式的统一资源标识符
    
    
注释中甚至有一个明确的 URL 示例作为规则 3.1 可接受的例外!因此,您的代码在这方面符合 MISRA 要求。

PC Lint 已损坏,请将其报告为错误。

© www.soinside.com 2019 - 2024. All rights reserved.