V2501. MISRA. Octal constants should not be used.
Данное диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.
Данное диагностическое правило различается для C и C++.
C: восьмеричные числовые литералы не должны использоваться.
C++: восьмеричные числовые литералы и экранирующие последовательности не должны использоваться.
Использование восьмеричных литералов может затруднить восприятие кода, особенно при быстром просмотре. Неправильная интерпретация фактического числового значения может приводить к разнообразным ошибкам.
Пример кода, на который анализатор выдаст предупреждение:
if (val < 010)
{
....
}
При быстром просмотре кода можно упустить из виду, что значение числового литерала – 8, а не 10. Чтобы анализатор не выдавал предупреждения, литерал стоит переписать в десятичной или шестнадцатеричной форме:
if (val < 8)
{
....
}
Данная диагностика классифицируется как:
|