对宽字符串wchar_t的疑惑
宽字符wchar_t实际使用 typedef unsigned short wchar_t; 语句进行的定义,也就是宽字符wchar_t本质上就是unsigned short 类型,但是不知道为什么,代码:#include <iostream>
#include <STRING>
#include <TCHAR.H>
#include <WINDOWS.H>
using namespace std ;
int const MAX_LEN = 100 ;
int main()
{
wchar_t ustr[MAX_LEN] ;
for (int i = 0 ; i < MAX_LEN -1 ; i++)
{
ustr[i] = 'a' ;
}
ustr[MAX_LEN -1] = '\0' ;
cout << ustr<<endl ;
cout << wcslen(ustr) << endl ;
return 0 ;
} 能通过编译,而代码:
int main()
{
unsigned short ustr[MAX_LEN] ;
for (int i = 0 ; i < MAX_LEN -1 ; i++)
{
ustr[i] = 'a' ;
}
ustr[MAX_LEN -1] = '\0' ;
cout << ustr<<endl ;
cout << wcslen(ustr) << endl ;
return 0 ;
}却不能通过编译?
我使用的是 VS2005 为编译器。