MISRA C++:2008 Rule 2-7-2
Sections of code shall not be "commented out" using C-style comments
描述
规则定义
Sections of code shall not be "commented out" using C-style comments. 1
理由
/* */
括号中的 C 风格注释不支持嵌套。以 /*
开头的注释在第一个 */
处结束,即使 */
是作为后续嵌套注释的结束符也是如此。如果注释掉的代码段已经包含注释,则可能会遇到编译错误(或者至少注释掉的代码少于预期)。
注释代码并不是一种好的做法。注释掉的代码可以与周围的代码保持不同步,而不会引起编译错误。稍后,如果您取消注释该代码,可能会遇到意外问题。
注释仅用于解释代码本身无法说明的方面。
Polyspace 实现
检查项使用内部启发式方法来检测注释掉的代码。例如,字符 #
、;
、{
或 }
表示可能包含代码的注释。然后,这些注释将与其他度量进行评估,以确定代码伪装为注释的可能性。例如,多个连续的单词之间没有符号会降低这种可能性。
即使以下注释包含代码,检查项也不会对其进行标记:
以
/**
或/*!
开头的 Doxygen 注释。重复多次相同符号的注释,例如此处的符号
=
:/* ===================================== * A comment * =====================================*/
对文件第一行的注释。
混合了 C 风格 (
/* */
) 和 C++ 风格 (//
) 的注释。
检查项认为这些注释是用于文档目的或经过深思熟虑后故意输入的。
故障排除
如果您预期会出现违规,而 Polyspace® 未报告该违规,请参阅诊断为何编码规范违规未按预期显示。
示例
检查信息
组:词法规范 |
类别:必需 |
版本历史记录
在 R2020b 中推出
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.