var
B: Byte;
begin
B := High(Byte) + 1; <---编译不通过
end;var
B: Byte;
begin
B := High(Byte);
B := B + 1; <----编译通过
end;请教这是怎么会事???
B: Byte;
begin
B := High(Byte) + 1; <---编译不通过
end;var
B: Byte;
begin
B := High(Byte);
B := B + 1; <----编译通过
end;请教这是怎么会事???
在编译时,就可以算出B的值;而B := B + 1;
在编译时,无法算出B的值,只有在运行的时候才知道;
虽然前面有语句:B := High(Byte);
但编译器不可能这么智能的