主要内容

MISRA C++:2023 Rule 0.2.2

A named function parameter shall be used at least once

自 R2024b 起

描述

A named function parameter shall be used at least once 1

理由

函数中未使用的参数可能表明存在编程错误或代码不完整。例如,该参数可能用于您忘记编码的操作。

Polyspace 实现

规则检查项会针对函数中未命名的未使用参数报告违规,但以下情况除外:

  • 函数的函数体为空。

  • 函数中包含汇编语言指令(这些指令可能使用参数)。

  • 使用 [[maybe_unused]] 属性声明参数。

如果报告了违规,则违规的结果详细信息会显示哪些函数参数未被使用。

故障排除

如果您预期会出现违规,而 Polyspace® 未报告该违规,请参阅诊断为何编码规范违规未按预期显示

示例

全部展开

在此示例中,函数 foo() 违反了规则,而函数 bar() 符合规则。

  • 函数 foo() 有两个未使用的参数,即 param1param2

  • 函数 bar() 有一个参数 param2,如果未定义宏 MACRO_TO_ENABLE_PARAM2,则该参数未被使用。但是,为了符合规则,使用 [[maybe_unused]] 属性声明了该参数。

#include <cstdint>

std::uint32_t foo(std::uint32_t param1, //Noncompliant 
                  std::uint32_t param2, std::uint32_t param3) {               
    return param1;
}

std::uint32_t bar(std::uint32_t param1, std::uint32_t param2 [[maybe_unused]]) { // Compliant
#ifdef MACRO_TO_ENABLE_PARAM2
    param1 = param1 > param2? param1: param2;
#endif
    return param1;
}

检查信息

组:与语言无关的问题
类别:必需
PQL 名称:std.misra_cpp_2023.R0_2_2

版本历史记录

在 R2024b 中推出


1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.

The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:

  • MISRA C:2004

  • MISRA C:2012

  • MISRA C:2023

  • MISRA C++:2008

  • MISRA C++:2023

MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.