返回Pascal中的值

时间:2012-03-09 22:06:50

标签: pascal freepascal

对于在Pascal中返回值的函数,使用赋值FunctionName := SomeVal;。我假设它不会在C中的return确切地停止函数执行。在Pascal中有类似于C return的东西吗? (我正在使用FreePascal编译器)

4 个答案:

答案 0 :(得分:13)

您可以使用退出程序。

function Foo (Value : integer) : Integer;
begin      
  Exit(Value*2);
  DoSomethingElse();   // This will never execute
end; 

答案 1 :(得分:1)

每个程序结尾的返回代码存储在EAX寄存器中。因此,您可以在Pascal上使用Assembly inline返回想要结束使用的程序运行的任何位置!

 asm
 mov eax,%ERROLEVEL%
 end; 

答案 2 :(得分:1)

在规范的 pascal(没有关键字 Exit)中,您可以通过 goto 模拟返回:

   function Foo (Value : integer) : boolean;
   label return;
   begin      
      if Value < 0 then
      begin
          Foo := false;
          goto return;
      end;
      Calc();
      Foo := true;
   return:
   end; 

答案 3 :(得分:0)

我认为你可以使用函数名称本身,"result"Exit(),但我只使用result identifier,所以不知道其他人是否会工作为你:

function Foo(a, b: Integer): Integer;
begin
    result := a + b;
end;

希望有所帮助^^