当前位置:  开发笔记 > 编程语言 > 正文

Delphi 2009 + Unicode + Char-size

如何解决《Delphi2009+Unicode+Char-size》经验,为你挑选了1个好方法。

我刚刚获得Delphi 2009并且之前已经阅读了一些关于由于切换到Unicode字符串而可能需要的修改的文章.大多数情况下,提到sizeof(char)不再保证为1.但是为什么这对于字符串操作会有趣呢?

例如,如果我使用AnsiString:='Test'并对String(现在是unicode)执行相同操作,那么我得到Length()= 4,这对于两种情况都是正确的.没有测试它,我确信所有其他字符串操作函数的行为方式相同,并在内部决定参数是unicode字符串还是其他任何东西.

如果我进行字符串操作,为什么我会对char的实际大小感兴趣呢?(当然,如果我使用字符串作为字符串而不存储任何其他数据)

谢谢你的帮助!霍尔格



1> Jim McKeeth..:

使用Unicode SizeOf(SomeChar)<> Length(SomeChar).基本上,字符串的长度小于其字符大小的总和.只要你不假设SizeOf(Char)= 1,或者SizeOf(SomeString [x])= 1(因为两者都是FALSE)或尝试用char s 交换字节 s,那么你应该没有任何麻烦.你正在做任何创造性地将字节填入Char s或String s的地方,那么你将需要使用AnsiString.

(SizeOf(SomeString)仍然是4,无论长度,因为它本质上是一个带有一些编译器魔法的指针.)

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有