是否有@运营商的类型安全版本?或者可以打开的编译器警告?

时间:2010-08-23 13:46:43

标签: delphi

以下代码不会在D6中生成编译器警告。当我告诉它ps指向一个字符串时,我可以告诉我将ps指向一个整数吗?

procedure Test;
var
  i: integer;
  s, m: string;
  ps: ^string;
begin
  s := 'Test message';
  ps := @s;
  m := ps^;
  MessageDlg(m, mtInformation, [mbOK], 0);  // This displays 'Test message'.
  ps := @i;  // I would like a warning here.
  m := ps^;
  MessageDlg(m, mtInformation, [mbOK], 0);  // This might display garbage.
end;

2 个答案:

答案 0 :(得分:7)

使用Type-checked pointers({$ T +}指令)

答案 1 :(得分:2)

项目设置中有一个选项 - >完全针对此编译器设置。