Вебинар: Стратегия без иллюзий: как превращать цели в результаты - 19.08
Диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.
Последовательности восьмеричных и шестнадцатеричных чисел внутри строковых и символьных литералов должны быть завершёнными. Это поможет избежать ошибок с определением позиции завершения escape-последовательности.
Рассмотрим пример:
const char *str = "\x0exit";
Строковый литерал в данном примере имеет длину в 4 символа, а не 5, как может показаться на первый взгляд. Последовательность '\x0e' считается за один символ с кодом 0xE, а не символ с нулевым кодом и букву 'e'.
Поэтому escape-последовательность должна быть завершена одним из двух способов:
Следующие 2 примера представляют собой правильный вариант завершения escape-последовательности:
const char *str1 = "\x0" "exit";
const char *str2 = "\x1f\x2f";
Диагностическое правило классифицируется как:
|
Была ли полезна эта страница документации?
Мы ответим вам на:
Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок: