11

为什么 Delphi 编译器会忽略这个缺失的括号?

function Test: Boolean;
begin
  Exit(True;    // <-- eek! it compiles...
end;

我发现我的一些代码看起来像这样,并且首先认为 Delphi 忽略了我的单元 - 但它只是忽略了这种类型的语法错误。所以现在我当然想知道为什么。

4

2 回答 2

1

我猜Exit它本身被认为是一个标记,因此在同一范围内定义的任何内容都Exit被编译器简单地忽略(因为它无论如何都无法执行这些指令)。

于 2012-04-30T08:17:18.230 回答
0

也许编译器认为 1. 本身有一个出口,或者 2. 有一个带有一组括号 () 的出口。如果它没有找到#2,它会转到#1。

于 2012-05-04T12:55:25.923 回答