(1)在delphi中,如此传递数据参数编译会出错。
function InQueue(info : array[0..1023] of byte) : Boolean; //编译会出错
function InQueue(info : array of byte) : Boolean; //正确
这是为什么?怎么样解决。
(2)在delphi中,怎么快速copy一个数据的数据到另一个数。如下语句效力太低
a , b : array[0..1023] of byte; for i := 0 to 1023 do
a[i] := b[i];
function InQueue(info : array[0..1023] of byte) : Boolean; //编译会出错
function InQueue(info : array of byte) : Boolean; //正确
这是为什么?怎么样解决。
(2)在delphi中,怎么快速copy一个数据的数据到另一个数。如下语句效力太低
a , b : array[0..1023] of byte; for i := 0 to 1023 do
a[i] := b[i];
type
TArrayByte = array[0..1023] of Byte;function InQueue(info : TArrayByte ): Boolean; (2)
Move(b[0], a[0], SizeOf(b));
function InQueue(info : array of byte) : Boolean;
的形式,在函数里可以用Low(Info)和High(Info)得到数组的上下边界。
或者可以这样声明:
type
TInfo = array [0..1023] of byte;
function func(Info: TInfo): Boolean;2、
var
a , b : array[0..1023] of byte;
begin
... ...
Move(b[0], a[0], 1024);
end;