转义常规字符
答
它在C11草案的n1570草案(非规范性)中很明确。的6.4.4.4字符常数的段落定义逸出序列:
转义序列:
- 简单转义序列
- 八进制转义序列
- 十六进制逃逸 - 序列
- 通用字符名称
简单转义序列:中
- \” \一个” \?\
- \ A \ B \˚F\ n \ r \吨符\ v
八进制转义序列:
- \八进制位
- \ octal-八进制数字
- \八进制,八进制,八进制数字
十六进制转义序列:
- \ X十六进制数字
- 十六进制转义序列十六进制数字
另一个字符的所有其他序列以下一个\
这里没有定义,所以现行标准没有规定行为(未定义)
注曰:
77)...... 如果任何其它字符如下反斜线, 结果不是令牌和诊断需要。请参阅“将来的语言指导”(6.11.4)。
而且6.11.4说:作为转义序列被保留给未来的标准化
6.11.4字符转义序列
小写字母。其他 字符可用于扩展名。
通常,编译器发出所需的警告,但忽略多余的\
。它对于非小写字母是完全符合的,因为它可以是本地扩展名,但它可能会在未来版本的C语言中打破小写字母,因为它明确表示为保留功能
答
从this escape sequence reference:
ISO C要求的诊断,如果反斜杠后跟此处未列出的任何字符。
所以需要编译器打印关于它的消息。
在快速阅读C11规范(INCITS + ISO + IEC + 9899-2011 [2012],参考上述链接参考文献后),我没有发现行为。虽然可以在其他地方指定它,但我对此表示怀疑,所以未指定转义序列的行为没有具体说明。