c++ - 赋值运算符和相等运算符中的宽字符和字符

标签 c++ char widechar

假设 wc 是一个 wchar_tc 是一个 char
1)这两个assignment有什么不同吗?

c = 'a';
wc = L'a';

2) 是否有任何规则强制 cwc 的 ASCII 值相等? wc == c 对编译器到底意味着什么?

最佳答案

否 -- 标准保证基本执行字符集和基本宽执行字符集都包含“a”,但不保证两者具有相同的值。

§2.3/3 给出了一些限制(例如,数字应该是连续的),这些都不适用于这里,最后:“执行字符集成员的值和附加成员集是 locale-具体的。”

因此,不仅不能保证,而且至少在理论上它甚至可以在/如果您更改语言环境时发生变化。

关于c++ - 赋值运算符和相等运算符中的宽字符和字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16090248/

相关文章:

c++ - std::bind 对我来说毫无意义

c - 填充 C 输出参数

CountChars数组字符串循环函数字母出现次数

c - 在 C 中使用 wcslen 时出现段错误

c++ - 使用模板特化和接口(interface)对实例和原始类型进行统一函数调用

c++ - 如何在 C++ 中计算非常大的数字

c++ - 通过基本引用进行分配的对象切片是否定义良好?

关于在 char 中放置一个小整数的 C++ 信息

c - 我如何保证终端具有 NCURSES 的 Unicode/宽字符支持?

C++:宽字符输出不正确?