收到 Borland China 寄来的 Delphi 2005 试用版光盘
十二月 27th, 2004
虽然早用上了 Delphi 2005 Update 1 正式版,这张光盘已经没有实际意义,但还是挺兴奋的,毕竟是 Borland 寄给我的东西,呵呵。
平心而论 Delphi 2005 是个不错的产品,虽然我们可以找出一堆数落她的理由。比如启动太慢,占用内存太多,IDE 太像 Visual Studio 而失去了 Delphi 传统的风格,编辑器反应比较慢等等。不过在同一个 IDE 里同时支持 Delphi for Win32、Delphi for .NET 以及 C# 确实是个很诱人的卖点。以及新增的 Refactoring、UML Modeling 等等都是很实用很重要的功能。
Delphi 2005 是个不错的产品,但 Borland 对她的宣传确实有些过了。
Tags: Delphi, Programming 编程关于 Delphi 参数传递方式的一点研究
七月 29th, 2004
某次看 D6DG 说默认的参数传递方式因为会为变量产生本地副本所以会消耗额外的内存,而 const 方式会优化字符串和记录类型的参数传递时的内存占用。从而猜测 const 方式的参数传递实际也是按地址传递,只是编译器强制不允许函数内的代码修改 const 方式传递进去的变量而已。
为了证实我的猜想,特设计以下实验,本实验中使用到了字符串(本文提到的字符串都是指 Delphi 默认的字符串 AnsiString)内部结构中的引用计数。
关于字符串的引用计数,结合 D6DG 中的说明和偶的实际研究,得出的结论是,字符串地址实际上是其内容的第一个字符的地址,在此地址之前的 12 字节内存中的内容才是字符串内部结构中的头部,分别是 32 位字符串占用的内容空间大小,32 位引用计数,32 位字符串长度(仅在 Delphi 7 中验证,推测 Delphi 7 以前的 32 位 Delphi 中的字符串结构都应该是这样,未验证)。
以下代码中 sGlobal 为全局字符串变量。 Read the rest of this entry »
Tags: Delphi, Programming 编程