我必须在 Virtual Pascal 中转换一些使用内联 asm 代码的程序,但不知道如何在 Virtual Pascal 中比较指针?
以下示例导致
Operand types do not match operator
语句上出现 While
:
procedure ReverseBytes(var V; Size : Word);
{-Reverse the ordering of bytes from V[1] to V[Size]. Size must be >= 2.}
var
P1, P2 : ^Byte;
PT : Byte;
begin
P1 := @V;
P2 := P1;
Inc(P2, Size-1);
while (P1 < P2) do
begin
PT := P1^;
P1^ = P2^;
^P2 := PT;
Inc(P1);
Dec(P2);
end;
end;
如何在 Virtual Pascal 中比较指针(它们本身 - 而不是它们指向的内容)?
附注我知道有一些 Pascal 风格(例如 GNU Pascal)像 C 语言一样支持它(就像我上面所做的那样)。 但 Virtual Pascal 没有。
蒂亚!!
如果P1=P2则它们的地址相等 如果 P1^=P2^ 则指向的值相等