这个程序
{$T+}
var
PA: PAnsiChar;
PW: PWideChar;
s: string;
begin
PA := @s[1];
PW := @s[1];
end.
编译。我希望{$T+}
使用其中一个赋值将被编译器拒绝。在现代的Unicode Delphi中,我希望第一个赋值是无效的。
当
@
应用于{$T+}
状态的变量引用时,结果的类型为^T
,其中T
仅与指向该类型的指针兼容变量。
为什么使用键入的地址似乎不适用于上面的代码?