假设 wc
是一个 wchar_t
而 c
是一个 char
。
1)这两个assignment有什么不同吗?
c = 'a';
wc = L'a';
2) 是否有任何规则强制 c
和 wc
的 ASCII 值相等? wc == c
对编译器到底意味着什么?
最佳答案
否 -- 标准保证基本执行字符集和基本宽执行字符集都包含“a”,但不保证两者具有相同的值。
§2.3/3 给出了一些限制(例如,数字应该是连续的),这些都不适用于这里,最后:“执行字符集成员的值和附加成员集是 locale-具体的。”
因此,不仅不能保证,而且至少在理论上它甚至可以在/如果您更改语言环境时发生变化。
关于c++ - 赋值运算符和相等运算符中的宽字符和字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16090248/