pp标记还剩下哪些字符
What characters are left for pp-tokens?
规范在2.5中列出了pp令牌的类别,但包含最后一个类别
每个非空白字符,不能是上述
之一
我很难找到一个例子,其中pp令牌捕获这样一个字符产生一个有效的c++程序。正如2.5所解释的,一个程序可能包含一个野生的"
或'
令牌,但是这样的行为是未定义的。有有效的程序的例子吗?
例如,我认为$
和@
属于这一类(假设这些字符在源字符集中)。两者都是有效的pp标记,但不是有效的标记,并且在稍后的翻译阶段将被诊断为语法错误(除非它们已被#if
, #ifdef
等删除)。
我不知道在任何情况下,这样的pp-token会产生一个有效的token
您可以将多余的令牌字符串化,使其有效。实际上;在之前的问题中你已经做到了!
散乱的字符记号也可能出现在条件编译跳过的组中,即
#if 0
@ ` €
#endif
请注意,在所有这些情况下,唯一偏离的字符标记是反斜杠,因为UCN(如u0040
)不构成标识符,UCN是标识符中的特殊情况,而反斜杠单独是"可以构成预处理标记的最长字符序列",u0040
是一个单独的标识符。
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 指向指向字符数组的指针数组的指针
- 如何用转义符替换字符串中的所有特殊字符
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 比较字符数组
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++中无符号字符溢出
- pp标记还剩下哪些字符