我有一个数组a是longword的(unsigned 32 int)在xx函数中需要对这个a数组的每个字节进行处理
所以xx的声明是这样的function xx(para1 : array of byte;len : integer):integer;然后我这样使用函数
xx(a,4);
提示出错,
我该怎么办啊
所以xx的声明是这样的function xx(para1 : array of byte;len : integer):integer;然后我这样使用函数
xx(a,4);
提示出错,
我该怎么办啊
var
I: Integer;
begin
Result := 0;
for I := 0 to Len - 1 do TByteArray(Data)[I] := 0;
end;procedure TForm1.Button1Click(Sender: TObject);
var
A: LongWord;
begin
XX(A, SizeOf(A));
end;
TBuffer4 = array[0..3] of Char;
var
A: LongWord;
B: Integer;
C: Pointer;
D: TBuffer4;
begin
B := Integer(A); //如果存储空间相同就可以使用类型转换
C := Pointer(A);
D := TBuffer4(A);
end;
如果可以保证数据不丢失;
你可以只要低8位
function xx(para1 : array of byte;len : integer):integer;
改成function xx(para1 : pointer;len : integer):integer;
然后声明了
Type
TLongword=array of Longword;
PTLongword=^Tlongword;
TByte=array of byte;
PTbyte=^Tbyte
传入PTlongword类型指针,然后将函数内将指针转换成PTbyte类型指针
如后通过PTbyte^[X]进行操作
Type
Tlongword=array of Longword;
Tbyte=array of byte;
function xx(para1 : Tbyte;len : integer):integer;
var
a:Tlongword;
....
xx(Tbyte(a),len)
通过paral[X]进行操作