Delphi 是';绝对值';比移动快()?
例如,我们有一个DWORD=$12345678 以下哪条指令更快-绝对指令还是移动指令()Delphi 是';绝对值';比移动快()?,delphi,Delphi,例如,我们有一个DWORD=$12345678 以下哪条指令更快-绝对指令还是移动指令() 具体地说,我是在问“绝对”到底是做什么的,因为如果它不使用额外的内存来写入byteArray,那么在这种情况下,我没有理由使用Move而不是absolute,那么“绝对”是如何工作的呢?绝对”指令指向与指定变量相同的内存。没有执行任何代码,因此是的,它比Move或任何其他代码都快。absolute不执行任何操作;它声明一个变量的地址与另一个变量相同 Move()执行复制操作,这需要一些时间 使用absol
具体地说,我是在问“绝对”到底是做什么的,因为如果它不使用额外的内存来写入byteArray,那么在这种情况下,我没有理由使用Move而不是absolute,那么“绝对”是如何工作的呢?绝对”指令指向与指定变量相同的内存。没有执行任何代码,因此是的,它比Move或任何其他代码都快。absolute不执行任何操作;它声明一个变量的地址与另一个变量相同 Move()执行复制操作,这需要一些时间
使用absolute时,两个变量都存储在同一个地址,您的第二个声明将变量存储在不同的位置。'absolute'只是类型转换的另一种形式,就好像您有一个位置引用,指向您的'a'DWORD,并带有一个PByte指针,用于处理以下字节:PByte(@a^[0]:=3,PByte(@a^[1]:=4等等。您正在戳(或读取)DWORD变量的另一种方式。Pascal是一种强类型语言,但通过类型转换(或绝对),您几乎可以做任何事情。 布里 “绝对”是如何工作的 看
var a:DWORD = $12345678;
b:Array[0..3] of byte absolute a;
var a:DWORD = $12345678;b:Array[0..3] of Byte
begin
Move(a,b,4);
end;