V2633. MISRA. Identifiers should be distinct from macro names.
Данное диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.
Это правило актуально только для C.
Имена макросов должны отличаться от имён идентификаторов.
Минимальное требование к их различимости зависит от версии стандарта:
- C90 — первый 31 символ;
- C99 — первые 63 символа.
Правило требует, чтобы имена были различимы в рамках ограничений, налагаемых стандартом.
Нижеперечисленные примеры будут касаться C90.
Пример некорректного кода:
// 1234567890123456789012345678901
#define average_winter_air_temperature_Monday awt_m
static int average_winter_air_temperature_tuesday;
Имена макроса и идентификатора неразличимы при сравнении первых 31 символов.
Корректный код:
// 1234567890123456789012345678901
#define average_winter_air_temp_Monday awt_m
static int average_winter_air_temp_tuesday;