字符文字与字符串文字的 U 前缀有什么区别?

问题描述 投票:0回答:1

C++ 编程语言 C++ 第 4 版,第 6.2.6 节中,它说:

允许 R、L 和 u 前缀的组合,例如,

uR"\*\*(foo\\(bar))\*\*"
。请注意字符(无符号)和字符串 UTF-32 编码的 U 前缀含义的显着差异(第 7.3.2.2 节)。

不太明白作者想表达什么。到底什么是“巨大的差异”?为什么这里用“(无符号)”这个词?

根据我的理解,U前缀的字符文字包含引用字符的ISO-10646代码点值,这基本上与字符串文字的U前缀的想法相同,并且与“的概念无关”未签名”。

c++ unicode string-literals
1个回答
0
投票

unsigned
是一个 C++ 关键字,表示声明中(在大多数情况下)后面的整数类型仅具有正值。

参考请看这里: http://en.cppreference.com/w/cpp/language/types

现在对于 char 和 char[] 你有:

char16_t c = u'\u00F6';
char32_t d = U'\U0010FFFF';
char16_t C[] = u"Hell\u00F6";
char32_t D[] = U"Hell\U000000F6\U0010FFFF";

有关字符串文字的进一步参考: C++11 中字符串文字的 Unicode 编码

所以

u
U
unsigned
之间确实存在一些差异,但我不认为它有什么戏剧性。

© www.soinside.com 2019 - 2024. All rights reserved.