AnsiString的内部结构是什么?
BCB 2001-08-01 09:40:41 Delphi与BCB中有一个长串AnsiString,用很最多,
我初步分析它的结构:
它只有4个字节长,实为一串指针,
指向一个含尾0的字符串,这个字符串的前4个字节为一
长整数,存放的是串长,所以串长可达 2^32-1 (4TB),
好象就这样简单,现在有没有AnsiString源码定义?!!!!!!!!!!!!!我想看看!
AnsiString s1="test123";
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage(sizeof(s1)); // 为4,实为串指针
char *p=(char * &)s1; // s1的内容当作指针
ShowMessage(p); // 显示的就是串本身,说明s1就是指向串缓冲
long sl=*((long *)(p-4)); // 串前四个字节为长整数,实为串长
ShowMessage(sl); // 显示串长为7
}
谁能找一找AnsiString的源码定义内容?一定给分!!!!!!!!!!!!!!