☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

不应使用非标准转义字符

11.5 ID_literal_nonStandardEsc
目录 › next › previous

非标准转义字符没有可移植性,也可能是忘了将反斜杠转义。

示例:

string path("C:\Files\x.cpp");   // Non-compliant

例中 \F 不是标准转义字符,\x 也不符合 16 进制转义字符的格式,这显然是路径中的反斜杠忘了转义。

附 C/C++ 标准转义字符:

'\a'          // Alert
'\b'          // Backspace
'\f'          // Formfeed page break
'\n'          // New line
'\r'          // Carriage return
'\t'          // Horizontal tab
'\v'          // Vertical tab
'\\'          // Backslash
'\?'          // Question mark
'\''          // Single quotation mark
'\"'          // Double quotation mark
'\0'          // Null character
'\ddd'        // Any character, ‘d’ is an octal number
'\xhh'        // Any character, ‘h’ is a hex number
'\uhhhh'      // Universal character name, ‘h’ is a hex number
'\Uhhhhhhhh'  // Universal character name, ‘h’ is a hex number

依据

ISO/IEC 9899:1999 6.4.4.4 ISO/IEC 9899:2011 6.4.4.4 ISO/IEC 14882:2003 2.13.2(3)-undefined ISO/IEC 14882:2011 2.14.3(3)-implementation ISO/IEC 14882:2017 5.13.3(7)-implementation

参考

MISRA C 2004 4.1 MISRA C++ 2008 2-13-1
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.