function Test():Integer; inline;
var
P:Pointer;
begin
FreeMem(P);
Result := AtomicIncrement(__gr); // __gr是全局变量
ShowMessage('abc');
end;
procedure TForm1.btn4Click(Sender: TObject);
var
r:Integer;
begin
ShowMessage('ab');
Test();
end;
结论1:
Result := AtomicIncrement(__gr);
这句不会被优化掉
===========================================================================================================================
function Test():Integer; inline; var P:Pointer; begin FreeMem(P); Result := AtomicIncrement(__gr); // __gr全局变量 ShowMessage('abc'); end; procedure TForm1.btn4Click(Sender: TObject); var r:Integer; begin ShowMessage('ab'); r := Test(); end;
结论2:
Result := AtomicIncrement(__gr); // __gr全局变量
这句会被优化掉, 也就是__gr不会 +1