﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-eaglet-最新评论</title><link>http://www.cnblogs.com/eaglet/CommentsRSS.aspx</link><description>本博专注于基于微软技术的搜索相关技术</description><language>zh-cn</language><pubDate>Wed, 23 May 2012 06:41:06 GMT</pubDate><lastBuildDate>Wed, 23 May 2012 06:41:06 GMT</lastBuildDate><generator>cnblogs</generator><item><title>Re:i—比 i++ 快？</title><link>http://www.cnblogs.com/eaglet/archive/2012/05/23/2511174.html#2384101</link><dc:creator>xh014</dc:creator><author>xh014</author><pubDate>Wed, 23 May 2012 08:58:31 GMT</pubDate><guid>http://www.cnblogs.com/eaglet/archive/2012/05/23/2511174.html#2384101</guid><description><![CDATA[这个感觉不一定吧。 当你不用变量的时候，
#include &lt;stdio.h&gt;
#include &lt;time.h&gt;
int main()
{
	clock_t cl = clock();
	int i;
	for(i=1000000000; i&gt;0; i--)
	{
	}
	printf(&quot;Elapse %u ms \r\n&quot;,(clock()-cl));

	cl = clock();
	for(i=0; i&lt;1000000000; i++)
	{
	}
	printf(&quot;Elapse %u ms \r\n&quot;,(clock()-cl));

	return 0;
}

测试的结果是
Elapse 2265 ms
Elapse 2235 ms<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/eaglet/" target="_blank">xh014</a> 2012-05-23 16:58 <a href="http://www.cnblogs.com/eaglet/archive/2012/05/23/2511174.html#2384101#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:i—比 i++ 快？</title><link>http://www.cnblogs.com/eaglet/archive/2012/05/23/2511174.html#2383783</link><dc:creator>eaglet</dc:creator><author>eaglet</author><pubDate>Wed, 23 May 2012 03:59:15 GMT</pubDate><guid>http://www.cnblogs.com/eaglet/archive/2012/05/23/2511174.html#2383783</guid><description><![CDATA[@leezhm
dtozg 说的是对象的 ++ ，这个其实是操作符重载，涉及到操作符重载，编译器无法优化。但对于简单类型，编译器是可以优化的。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/eaglet/" target="_blank">eaglet</a> 2012-05-23 11:59 <a href="http://www.cnblogs.com/eaglet/archive/2012/05/23/2511174.html#2383783#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:i—比 i++ 快？</title><link>http://www.cnblogs.com/eaglet/archive/2012/05/23/2511174.html#2383690</link><dc:creator>leezhm</dc:creator><author>leezhm</author><pubDate>Wed, 23 May 2012 02:31:28 GMT</pubDate><guid>http://www.cnblogs.com/eaglet/archive/2012/05/23/2511174.html#2383690</guid><description><![CDATA[@dtozg
[quote]dtozg：
@eaglet
[quote]eaglet：
@dtozg
把 count 变量改成常量，效果和直接在程序中写立即数是一样的，我测试了一下，也是这样的。[/quote]
我看你blog的时候，你还没有增加在for循环中直接写100000000的那一部分。我想说的就是，如果是直接在for中用常量，性能应该就相同的。

另，回复24楼。
i++和++i确实没有性能的差别(当i是简单类型变量时);但如果i是一个对象,就有差别了，i++会多产生一个临时变量(i对象的构造/析构函数多调用一次). 见&lt;&lt;Effective c++&gt;&gt; or &lt;&lt;More Effective C++&gt;&gt;具体是...[/quote]

如果++ i比 i ++要快，那为什么编译器不做优化啊？<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/eaglet/" target="_blank">leezhm</a> 2012-05-23 10:31 <a href="http://www.cnblogs.com/eaglet/archive/2012/05/23/2511174.html#2383690#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:i—比 i++ 快？</title><link>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2383418</link><dc:creator>dtozg</dc:creator><author>dtozg</author><pubDate>Tue, 22 May 2012 15:46:38 GMT</pubDate><guid>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2383418</guid><description><![CDATA[@eaglet
[quote]eaglet：
@dtozg
把 count 变量改成常量，效果和直接在程序中写立即数是一样的，我测试了一下，也是这样的。[/quote]
我看你blog的时候，你还没有增加在for循环中直接写100000000的那一部分。我想说的就是，如果是直接在for中用常量，性能应该就相同的。

另，回复24楼。
i++和++i确实没有性能的差别(当i是简单类型变量时);但如果i是一个对象,就有差别了，i++会多产生一个临时变量(i对象的构造/析构函数多调用一次). 见&lt;&lt;Effective c++&gt;&gt; or &lt;&lt;More Effective C++&gt;&gt;具体是哪本书忘了～

所以，能用 ++i 就不要用 i++<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/eaglet/" target="_blank">dtozg</a> 2012-05-22 23:46 <a href="http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2383418#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:i—比 i++ 快？</title><link>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2383233</link><dc:creator>eaglet</dc:creator><author>eaglet</author><pubDate>Tue, 22 May 2012 11:20:40 GMT</pubDate><guid>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2383233</guid><description><![CDATA[@Meta.Grfx
目前的主流编译器在处理单独的 i++ ;时都会进行优化，因为单独的 i++ ;转储没有任何意义。不过保险起见，用 ++i 更好。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/eaglet/" target="_blank">eaglet</a> 2012-05-22 19:20 <a href="http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2383233#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:i—比 i++ 快？</title><link>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2383127</link><dc:creator>Meta.Grfx</dc:creator><author>Meta.Grfx</author><pubDate>Tue, 22 May 2012 09:34:59 GMT</pubDate><guid>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2383127</guid><description><![CDATA[@eaglet
C++有些标准只是语义上规范，并没有强制硬件实现。我觉得这个问题其实可以不必这么大敬小乖。如果在一种可以直接操作内存的架构上运行这段代码，说不定编译器就能利用到硬件指令的特性。
比如++i和i++，语义上不必多说大家都知道了，但是如果能用++i的话，尽量保持使用++i，也许这段代码成为遗留代码时候，或者运行到新架构上，都能更偏向程序员的本意。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/eaglet/" target="_blank">Meta.Grfx</a> 2012-05-22 17:34 <a href="http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2383127#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:i—比 i++ 快？</title><link>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2382852</link><dc:creator>szyicol</dc:creator><author>szyicol</author><pubDate>Tue, 22 May 2012 07:10:25 GMT</pubDate><guid>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2382852</guid><description><![CDATA[嗯，程序员精神！<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/eaglet/" target="_blank">szyicol</a> 2012-05-22 15:10 <a href="http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2382852#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:i—比 i++ 快？</title><link>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2382652</link><dc:creator>暮夕</dc:creator><author>暮夕</author><pubDate>Tue, 22 May 2012 05:08:30 GMT</pubDate><guid>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2382652</guid><description><![CDATA[想起《疯狂的程序员》中boss绝的话“汇编才是王道” ;-)<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/eaglet/" target="_blank">暮夕</a> 2012-05-22 13:08 <a href="http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2382652#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:i—比 i++ 快？</title><link>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2382237</link><dc:creator>未将对象引用设置到对象的实例</dc:creator><author>未将对象引用设置到对象的实例</author><pubDate>Tue, 22 May 2012 01:29:54 GMT</pubDate><guid>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2382237</guid><description><![CDATA[汇编，是一定要学习的<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/eaglet/" target="_blank">未将对象引用设置到对象的实例</a> 2012-05-22 09:29 <a href="http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2382237#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:i—比 i++ 快？</title><link>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2382178</link><dc:creator>Elijah Wong</dc:creator><author>Elijah Wong</author><pubDate>Tue, 22 May 2012 01:03:54 GMT</pubDate><guid>http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2382178</guid><description><![CDATA[不错。感谢楼主分享。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/eaglet/" target="_blank">Elijah Wong</a> 2012-05-22 09:03 <a href="http://www.cnblogs.com/eaglet/archive/2012/05/22/2511174.html#2382178#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>
