转义字符的反斜杠不可误写成斜杠
11.1 ID_literal_suspiciousChar
将转义字符的反斜杠误写成斜杠是常见笔误,但仍可通过编译,造成不易察觉的问题。
本规则是 ID_literal_multicharacter 的特化。
示例:
char a = '/t'; // Non-compliant
char b = '\t'; // Compliant
例中 '/t' 是错误的,但可以作为“多字符常量”通过编译,值由实现定义。
又如:
const char* p = strchr(str, '/t'); // Non-compliant
在某些环境中执行结果和下列代码一样:
const char* p = strchr(str, '/');
字符 t 将被忽略,造成逻辑错误,'/t' 应改为 '\t'。
相关
依据
ISO/IEC 9899:1999 6.4.4.4(10)-implementation
ISO/IEC 9899:2011 6.4.4.4(10)-implementation
ISO/IEC 14882:2011 2.13.2(1)-implementation
ISO/IEC 14882:2011 2.14.3(1)-implementation
ISO/IEC 14882:2017 5.13.3(2)-implementation