相关疑难解决方法(0)

在Delphi中,参数是否在传递给方法时按顺序进行评估?

在Delphi中定义的过程调用之前,是否计算参数的顺序?

IOW,如果我有这个丑陋的代码(在遗留应用程序中找到类似的东西)......

function A(var err: integer): integer;
begin
  err := 42;
  Result := 17;
end;

Test(A(err), err);
Run Code Online (Sandbox Code Playgroud)

...测试保证接收参数(17,42)还是(17,未定义)?


编辑:

虽然David的示例在32位和64位编译器中返回不同的结果,但这(幸运的是)不会影响我的遗留代码,因为Test(A(错误),错误)只在寄存器中存储'err' 的地址无论编译器在调用A(错误)之前还是之后执行此操作都无关紧要.

delphi

14
推荐指数
2
解决办法
940
查看次数

标签 统计

delphi ×1