惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
I
InfoQ
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
云风的 BLOG
云风的 BLOG
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
G
Google Developers Blog
WordPress大学
WordPress大学
B
Blog
人人都是产品经理
人人都是产品经理
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
Apple Machine Learning Research
Apple Machine Learning Research
N
Netflix TechBlog - Medium
Last Week in AI
Last Week in AI
博客园 - 聂微东
Jina AI
Jina AI

博客园 - D10.天地弦

AWS IoT 消息代理 我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。 Delphi调用java so [付费视频]Delphi视频Android开发使用静态库(A)和动态库(SO) DSS中间件介绍 求字符串的长度 [DiocpRPC]介绍与安装 发布一个UDP调试助手 VS2013使用rtklib中需要注意的一些问题(编译) [MyBean-插件]MyBean通用报表免费无限制版本发布 [C#-SQLite] SQLite一些奇怪的问题 [Delphi编译错误]F2084 Internal Error: U2107 Diocp截图 [DIOCP视频]-DIOCPFileServer视频 DIOCP 运作核心探密 DIOCP-DIOCPv5的处理能力 【被C折腾系列】用C调DIOCP编码客户端通信 DIOCP-V5发布 MyBean通用报表插件介绍
Delphi inline编译器优化问题
D10.天地弦 · 2016-09-14 · via 博客园 - D10.天地弦
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