Delphi inline编译器优化问题
Posted D10.天地弦-生活的点点滴滴是珍贵的
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi inline编译器优化问题相关的知识,希望对你有一定的参考价值。
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
可以使用{$O+}避免优化掉重要代码
以上是关于Delphi inline编译器优化问题的主要内容,如果未能解决你的问题,请参考以下文章