type
Tbuf = array [0..1024] of byte;
Tmax = array [0..20000] of byte; Tfindtext = class(TThread)
private public
Constructor Create(connid:integer;pi:Thandle);
protected
procedure execute;override;
end;定义类的时候这两句放到这是什么意思
Tbuf = array [0..1024] of byte;
Tmax = array [0..Bigbufsize] of byte;
Tbuf = array [0..1024] of byte;
Tmax = array [0..20000] of byte; Tfindtext = class(TThread)
private public
Constructor Create(connid:integer;pi:Thandle);
protected
procedure execute;override;
end;定义类的时候这两句放到这是什么意思
Tbuf = array [0..1024] of byte;
Tmax = array [0..Bigbufsize] of byte;
Tbuf = array [0..1024] of byte;
Tmax = array [0..20000] of byte;
====
定义新的数据类型。var a : TBuf 相当于 var a : array [0..1024] of byte;
to hawksoft:嗯,确切地说,“别名”也是不准确的(但这样认为也未尝不可,并且理解起来直观),应该正如2楼所说:定义新的类型但2楼在最后举的例子,又回到了“别名”的认识上,其实,从严格意义上来说,二者不是同一类型,这是由于Delphi编译器严格的语法检查。例如:
{PInteger = ^Integer;}procedure TForm1.Button1Click(Sender: TObject);
var
a: ^integer;
b: ^integer;
c: PInteger;
d: PInteger;
e,f: ^integer;
begin
a := b; {编译报错:Incompatible types}
c := d; {OK}
e := f; {OK}
end;
我尽可能说得详细一些:type下面是定义类型,而不仅限于类类型,比如,type
x = y;
Tz = class
end;可以分解为:type
x = y;type
Tz = class
end;对于
type
x = array of char;来讲,
你可以理解为,给array of char取了另一个名字下一步,在真正声明array of char类型的变量时,可以这样:
var
v1 : array of char;
也可以
var
v1 : x;而这种“别名”的用处之一,常常在以下的场合:有时声明一个函数,需要返回值是一个数组:function func1(): array[1..3]of char;
但这样编译会报错
于是
type
TArr : array[1..3] of char;然后
function func1(): TArr;
就可以了讲这些,对您有一些帮助了吗?