请看下面的代码:为什么允许空的wchar_t文字?
int main(int argc, char* argv[])
{
// This works: (Disable Lang Ext = *Yes* (/Za))
wchar_t wc0 = L'\0';
wchar_t wc_ = L'';
assert(wc0 == wc_);
// This doesn't compile (VC++ 2010):
char c0 = '\0';
char c_ = ''; // error C2137: empty character constant
assert(c0 == c_);
return 0;
}
为什么编译器还允许定义空字符文字宽字符?这对于宽度来说没有意义,就像编译器标记错误的char
没有意义。
这是标准允许的吗?
gcc 4.6.0拒绝这两个语句。 – pmr 2011-05-27 07:54:39