Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 是';绝对值';比移动快()?_Delphi - Fatal编程技术网

Delphi 是';绝对值';比移动快()?

Delphi 是';绝对值';比移动快()?,delphi,Delphi,例如,我们有一个DWORD=$12345678 以下哪条指令更快-绝对指令还是移动指令() 具体地说,我是在问“绝对”到底是做什么的,因为如果它不使用额外的内存来写入byteArray,那么在这种情况下,我没有理由使用Move而不是absolute,那么“绝对”是如何工作的呢?绝对”指令指向与指定变量相同的内存。没有执行任何代码,因此是的,它比Move或任何其他代码都快。absolute不执行任何操作;它声明一个变量的地址与另一个变量相同 Move()执行复制操作,这需要一些时间 使用absol

例如,我们有一个DWORD=$12345678

以下哪条指令更快-绝对指令还是移动指令()


具体地说,我是在问“绝对”到底是做什么的,因为如果它不使用额外的内存来写入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;