В Delphi параметры оцениваются по порядку при передаче в метод?
Определен ли порядок, в котором рассчитываются параметры перед вызовом процедуры, в Delphi?
Если у меня есть этот уродливый код (нашел что-то подобное в унаследованном приложении) ...
function A(var err: integer): integer;
begin
err := 42;
Result := 17;
end;
Test(A(err), err);
... гарантированно ли Test принимает параметры (17, 42) или также (17, не определено)?
Редактировать:
Хотя пример Дэвида возвращает другой результат с 32-битным и 64-битным компилятором, это (к счастью) не влияет на мой унаследованный код, потому что Test (A (err), err) хранит толькоan address из 'err' в регистре, и не имеет значения, делает ли это компилятор перед вызовом A (err) или после.