C语言中的字面量与类型转换
1. 前缀示例与字符常量
在C语言里,有不同类型的前缀用于表示特定类型的字符常量。例如,使用前缀 U 可以定义 char32_t 类型的宽字符常量,像 U’a' 、 U'\u27FA’ 。宽字符常量中若包含单个可在执行字符集中表示的多字节字符,其值就是对应宽字符的代码,这一代码可由标准函数 mbtowc() 、 mbrtoc16() 或 mbrtoc32() 返回,具体取决于宽字符常量的类型。
C11标准引入了Unicode类型 char16_t 和 char32_t 以及相应的转换函数。当实现中定义了宏 __STDC_UTF_16__ 时, char16_t 类型的字符采用UTF - 16编码;若定义了宏 __STDC_UTF_32__ , char32_t 类型的字符则采用UTF - 32编码。
需要注意的是,包含多个字符的字符常量,如 L'xy' ,其值并未明确规定。为确保程序的可移植性,应避免依赖此类字符常量的特定值。
2. 转义序列
转义序列以反斜杠 \ 开头,代表单个字符。它能让我们在字符常量和字符串字面量中表示任何字符,包括不可打印字符以及具有特殊含义的
超级会员免费看
订阅专栏 解锁全文
8444

被折叠的 条评论
为什么被折叠?



