6.4.3 通用字符名
语法
1、通用字符名:
universal_character-name:
\u hex-quad(四位十六进制数)
\U hex-quad hex-quad
hex-quad:
hexadecimal-digit hexadecimal-digit hexadecimal-digit hexadecimal-digit
约束
2、一个通用字符名不应该指定一个字符,其短标识符比00A0要小,除了0024($),0040(@),0060(`)之外,也不应该在D800到DFFFF(包含两者)的范围内。[注:所不允许的字符是在基本字符集中的字符,以及编码位置在ISO/IEC 10646中用于控制字符而所保留的字符,DELETE字符和S区域(被UTF16保留使用)。]
描述
3、通用字符名可以被用在标识符、字符常量以及字符串字面量中来指派不在基本字符集中的字符。[译者注:比如:
const char *ab\u1fc2cd = u8"ab\u1fc2cd";
printf("The string is: %s\n", ab\u1fc2cd);
结果输出:The string is: abῂcd
]
语义
4、通用字符名\Unnnnnnnn指派了八位十六进制数短标识符为nnnnnnnn的字符(由ISO/IEC 10646所指定的)。[注:字符的短标识符首次在ISO/IEC 10464-1/AMD9:1997中指定。]类似地,通用字符名\Unnnn指派了四位十六进制数的短标识符为nnnn的字符(其相应的八位短标识符为0000nnnn)。