MISRA C++:2008 Rule 2-10-1

Различные идентификаторы должны быть типографски однозначными

Описание

Определение правила

Различные идентификаторы должны быть типографски однозначными.

Объяснение

Когда вы используете идентификаторы, которые типографски близки, можно перепутать между ними.

Идентификаторы не должны отличаться:

  • Обмен строчной буквы с ее верхним эквивалентом.

  • Наличие или отсутствие символа подчеркивания.

  • Обмен буквой O и цифра 0.

  • Обмен буквой I и цифра 1.

  • Обмен буквой I и буквы l.

  • Обмен буквой S и цифра 5.

  • Обмен буквой Z и цифра 2.

  • Обмен буквой n и буквы h.

  • Обмен буквой B и цифра 8.

  • Обмен буквами rn и буквы m.

Реализация Polyspace

Проверка правил не учитывает полные имена переменных при проверке этого правила.

Bug Finder и Code Prover по-разному проверяют это правило кодирования. Анализы могут привести к различным результатам.

Поиск и устранение проблем

Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».

Примеры

расширить все

void func(void) {
    int id1_numval;
    int id1_num_val;  //Non-compliant

    int id2_numval;
    int id2_numVal;   //Non-compliant

    int id3_lvalue;
    int id3_Ivalue;   //Non-compliant

    int id4_xyZ;
    int id4_xy2;      //Non-compliant

    int id5_zerO;
    int id5_zer0;     //Non-compliant

    int id6_rn;
    int id6_m;        //Non-compliant
}

В этом примере правило нарушается, когда используются идентификаторы, которые могут быть перепутаны друг для друга.

Проверяйте информацию

Группа: Лексические конвенции
Категория: Требуемая
Введенный в R2013b