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);
這句不會被優化掉spa
===========================================================================================================================code
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:orm
Result := AtomicIncrement(__gr); // __gr全局變量這句會被優化掉, 也就是__gr不會 +1