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