首页 > Windows开发 > 详细

Windows程序设计--宽字节和多字节

时间:2014-02-21 06:25:54      阅读:399      评论:0      收藏:0      [点我收藏+]

多字节字符集:

每个字符的编码宽度都不等,可以是一个字节,也可以是多个字节。
1)ASCII字符只占用一个字节;

2)对于中文、日文等象形文字,一个字符占用两个字节。

sizeof("12你好"); //7. \0算上
strlen("12你好"); //6

缺点:每次查找,都需要从头到尾扫描,以确定字符,效率低。
有点:节省内存。


宽字节字符集:

每个字符的编码宽度都相等,均是两个字节。
1)ASCII字符占用扩充为两个字节,在原先的字节前补充一个字节0x00 ;
2)结束符为两个\0 ;
3)字符串的解释都是以两个字符为单位进行解释,所以查找速度快。

sizeof("12你好"); //10. \0算上
wcslen("12你好"); //8

缺点:内存占用偏大
优点:查找速度快


兼容多字节和宽字节字符集:

#ifdef _UNICODE
	#define _tcslen wcslen
	#define TCHAR   wchar_t
	#define LPTSTR  wchar_t*
	#define _T(x)   L##x
#else
	#define _tcslen strlen
	#define TCHAR   char
	#define LPTSTR  char*
	#define _T(x)   x
#endif

小技巧:所有以前以str开头的字符串函数,在通用字符类型中str被替换为_tcs,在宽字节字符中str被替换为wcs

Windows程序设计--宽字节和多字节

原文:http://blog.csdn.net/lizuqingblog/article/details/19545671

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!