zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    C#去掉数组中重复的字符串 .Distinct()
    文件上传 uploadlabs
    Sipdroid初尝
    腾讯面试小记
    C/C++拾遗(二)
    ZigBee简介
    大端小端
    字符串——算法系列
    重复定义
    C/C++拾遗
  • 原文地址:https://www.cnblogs.com/DKSoft/p/5871091.html
Copyright © 2011-2022 走看看