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 и Программа автоматического доказательства Кода проверяют это правило кодирования по-другому. Исследования могут привести к различным результатам.

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

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Примеры

развернуть все

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