这个计划
{$T+}
var
PA: PAnsiChar;
PW: PWideChar;
s: string;
begin
PA := @s[1];
PW := @s[1];
end.
Run Code Online (Sandbox Code Playgroud)
编译.我希望{$T+}
编译器会拒绝其中一项任务.在现代的Unicode Delphi中,我希望第一个赋值是无效的.
类型检查指针的文档说:
当
@
应用于状态中的变量引用时{$T+}
,结果的类型是^T
,其中T
仅与指向变量类型的指针兼容.
为什么使用键入的地址似乎不适用于上面的代码?