This diagnostic rule is based on the MISRA (Motor Industry Software Reliability Association) software development standard.
This rule applies only to C. Sequences of octal and hexadecimal numbers inside string and character literals must be terminated. This helps avoid errors when determining where an escape sequence ends.
Example:
const char *str = "\x0exit";
This string literal is 4 characters long, instead of 5, as it may seem at first. The '\x0e' sequence is one character that has the 0xE code - not a character, that has a zero code, followed by the letter 'e'.
To avoid this confusion, one must terminate the escape sequence in one of two ways:
The 2 examples below show the right way to terminate an escape sequence:
const char *str1 = "\x0" "exit";
const char *str2 = "\x1f\x2f";
This diagnostic is classified as:
|
Was this page helpful?
Your message has been sent. We will email you at
If you do not see the email in your inbox, please check if it is filtered to one of the following folders: