在Delphi中定义过程之前,是否计算参数的顺序?
IOW,如果我有这个丑陋的代码(在遗留应用程序中找到这样的东西)…
function A(var err: integer): integer; begin err := 42; Result := 17; end; Test(A(err),err);
…是测试保证接收参数(17,42),还是可以(17,未定义)?
编辑:
虽然David的例子返回与32位和64位编译器不同的结果,但幸运的是,幸运的是不会影响我的遗留代码,因为Test(A(err),err)只在寄存器中存储一个’err’地址在调用A(err)或之后,编译器是否执行此操作并不重要.