【发布时间】:2012-07-16 14:52:03
【问题描述】:
使用'?' 风格的字符文字来比较或分配已知类型为wchar_t 的值,而不是使用L'?' 风格的文字有什么缺点吗?
【问题讨论】:
-
我不这么认为,因为标准说 A
char数组(无论是普通的char,签名的char,还是unsigned char),char16_t数组,@ 987654329@ 数组或wchar_t数组可以由窄字符字面量初始化) 但我会检查更多以确保。 -
仅供参考,对于“便携式”字符,允许
'x' != L'x'的基本原理是允许wchar_t是Unicode,即使在char必须是一些EBCDIC 字符集的系统上也是如此。当你考虑一个系统时,无论多么假设,在这种情况下,问题是立即可以回答的:它不可能相同,所以 C(希望 C++ 也是如此)不能要求它们相同,并且您必须使用L'...'字符文字来表示wchar_t。 -
@hvd: 哦...所以
'x' == L'x'是按位相等而不是逻辑相等? -
我不完全确定我理解正确。
'x' == L'x'比较char和wchar_t中的x字符对应的数值,我认为这也是你的意思? -
@hvd:啊,是的,这就是我的意思——所以我的理解是,如果
x的表示方式不同,那么它们的数值就会不同,这将让他们不平等...这很有趣,非常感谢您的评论!