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

推荐订阅源

J
Java Code Geeks
小众软件
小众软件
博客园 - 叶小钗
宝玉的分享
宝玉的分享
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
SegmentFault 最新的问题
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
Google DeepMind News
Google DeepMind News
U
Unit 42
F
Fortinet All Blogs
IT之家
IT之家
Y
Y Combinator Blog
Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - 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