ISO/IEC 9899:2011 条款6.4.3——通用字符名

时间:2021-08-01 03:08:21

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)。