﻿<?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>C++博客-冬天的林</title><link>http://www.cppblog.com/xlincn/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 23 Apr 2026 10:14:13 GMT</lastBuildDate><pubDate>Thu, 23 Apr 2026 10:14:13 GMT</pubDate><ttl>60</ttl><item><title>CEGUI</title><link>http://www.cppblog.com/xlincn/archive/2007/09/26/32916.html</link><dc:creator>冬天的林</dc:creator><author>冬天的林</author><pubDate>Wed, 26 Sep 2007 07:34:00 GMT</pubDate><guid>http://www.cppblog.com/xlincn/archive/2007/09/26/32916.html</guid><wfw:comment>http://www.cppblog.com/xlincn/comments/32916.html</wfw:comment><comments>http://www.cppblog.com/xlincn/archive/2007/09/26/32916.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xlincn/comments/commentRss/32916.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xlincn/services/trackbacks/32916.html</trackback:ping><description><![CDATA[<p><a title="http://www.cegui.org.uk/wiki/index.php/Main_Page" href="http://www.cegui.org.uk/wiki/index.php/Main_Page">http://www.cegui.org.uk/wiki/index.php/Main_Page</a></p> <p>下载URL：</p> <p><a title="http://prdownloads.sourceforge.net/crayzedsgui/CEGUI-0.5.0b.zip?download" href="http://prdownloads.sourceforge.net/crayzedsgui/CEGUI-0.5.0b.zip?download">http://prdownloads.sourceforge.net/crayzedsgui/CEGUI-0.5.0b.zip?download</a></p> <p><a title="http://prdownloads.sourceforge.net/crayzedsgui/CEGUI-SDK-0.5.0b-vc8.zip?download" href="http://prdownloads.sourceforge.net/crayzedsgui/CEGUI-SDK-0.5.0b-vc8.zip?download">http://prdownloads.sourceforge.net/crayzedsgui/CEGUI-SDK-0.5.0b-vc8.zip?download</a></p> <p><a title="http://prdownloads.sourceforge.net/crayzedsgui/CEGUI-DEPS-0.5.0b-vc8.zip?download" href="http://prdownloads.sourceforge.net/crayzedsgui/CEGUI-DEPS-0.5.0b-vc8.zip?download">http://prdownloads.sourceforge.net/crayzedsgui/CEGUI-DEPS-0.5.0b-vc8.zip?download</a></p> <p>解压到同一个目录。</p> <p>&nbsp;</p> <p>makefiles\premake\config.lua</p> <p>build_vs2005.bat</p><img src ="http://www.cppblog.com/xlincn/aggbug/32916.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xlincn/" target="_blank">冬天的林</a> 2007-09-26 15:34 <a href="http://www.cppblog.com/xlincn/archive/2007/09/26/32916.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>买书</title><link>http://www.cppblog.com/xlincn/archive/2007/08/22/30614.html</link><dc:creator>冬天的林</dc:creator><author>冬天的林</author><pubDate>Wed, 22 Aug 2007 09:50:00 GMT</pubDate><guid>http://www.cppblog.com/xlincn/archive/2007/08/22/30614.html</guid><wfw:comment>http://www.cppblog.com/xlincn/comments/30614.html</wfw:comment><comments>http://www.cppblog.com/xlincn/archive/2007/08/22/30614.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/xlincn/comments/commentRss/30614.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xlincn/services/trackbacks/30614.html</trackback:ping><description><![CDATA[<p>这几天买的书:</p> <p>C++程序设计语言(特别版)/国外经典教材<br>Windows游戏编程大师技巧（第二版）<br>网络游戏开发<br>ACE程序员指南：网络与系统编程的实用设计模式<br>3D数学基础：图形与游戏开发<br>DirectX 9.0 3D游戏开发编程基础&nbsp; <br>C++游戏编程（附CD-ROM光盘一张）<br>计算机图形学（第三版）<br>DirectX 角色扮演游戏编程（原书第2版）<br>Effective C++改善程序与设计的55个具体做法（中文第三版）<br>More Effective C++中文版 <p>&nbsp;</p> <p>白天上班。晚上还要看成人高考的书。有空慢慢看吧。</p><img src ="http://www.cppblog.com/xlincn/aggbug/30614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xlincn/" target="_blank">冬天的林</a> 2007-08-22 17:50 <a href="http://www.cppblog.com/xlincn/archive/2007/08/22/30614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++程序设计语言 把我对C++仅存的一点点自信打击了什么都没有了。</title><link>http://www.cppblog.com/xlincn/archive/2007/08/13/29913.html</link><dc:creator>冬天的林</dc:creator><author>冬天的林</author><pubDate>Mon, 13 Aug 2007 06:51:00 GMT</pubDate><guid>http://www.cppblog.com/xlincn/archive/2007/08/13/29913.html</guid><wfw:comment>http://www.cppblog.com/xlincn/comments/29913.html</wfw:comment><comments>http://www.cppblog.com/xlincn/archive/2007/08/13/29913.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/xlincn/comments/commentRss/29913.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xlincn/services/trackbacks/29913.html</trackback:ping><description><![CDATA[<p>星期六，星期天在家看了2天的书。结果是 把我对C++仅存的一点点自信打击了什么都没有了。</p> <p>郁闷。特别是模板。感觉现在C++不重视OOP了。在向模板发展。</p> <p>白天要上班。只有晚上有时间看书。</p><img src ="http://www.cppblog.com/xlincn/aggbug/29913.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xlincn/" target="_blank">冬天的林</a> 2007-08-13 14:51 <a href="http://www.cppblog.com/xlincn/archive/2007/08/13/29913.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++程序设计语言（特别版）到手了</title><link>http://www.cppblog.com/xlincn/archive/2007/08/10/29717.html</link><dc:creator>冬天的林</dc:creator><author>冬天的林</author><pubDate>Fri, 10 Aug 2007 13:38:00 GMT</pubDate><guid>http://www.cppblog.com/xlincn/archive/2007/08/10/29717.html</guid><wfw:comment>http://www.cppblog.com/xlincn/comments/29717.html</wfw:comment><comments>http://www.cppblog.com/xlincn/archive/2007/08/10/29717.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/xlincn/comments/commentRss/29717.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xlincn/services/trackbacks/29717.html</trackback:ping><description><![CDATA[<p>厚。真的很厚。不是一般的厚。不知道什么时候可以看完。看书先。</p><img src ="http://www.cppblog.com/xlincn/aggbug/29717.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xlincn/" target="_blank">冬天的林</a> 2007-08-10 21:38 <a href="http://www.cppblog.com/xlincn/archive/2007/08/10/29717.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基本概念:函数的传值(4)</title><link>http://www.cppblog.com/xlincn/archive/2007/08/09/29653.html</link><dc:creator>冬天的林</dc:creator><author>冬天的林</author><pubDate>Thu, 09 Aug 2007 09:57:00 GMT</pubDate><guid>http://www.cppblog.com/xlincn/archive/2007/08/09/29653.html</guid><wfw:comment>http://www.cppblog.com/xlincn/comments/29653.html</wfw:comment><comments>http://www.cppblog.com/xlincn/archive/2007/08/09/29653.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/xlincn/comments/commentRss/29653.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xlincn/services/trackbacks/29653.html</trackback:ping><description><![CDATA[<p>参数是一个指针的引用 &nbsp;的分析。</p> <p>C++ Primer有这方面的介绍。看了以后不是很明白。</p> <p>先来一个常规的：</p> <p>void fun2(int *a, int *b){<br>&nbsp;&nbsp;&nbsp; int&nbsp; tem = *b;<br>&nbsp;&nbsp;&nbsp; *b = *a;<br>&nbsp;&nbsp;&nbsp; *a = tem;<br>} <p>调用;</p> <p>int a = 1;<br>int b = 2;<br>int *a1 = &amp;a;<br>int *b1 = &amp;b;<br>fun2(a1,b1); <p>&nbsp;</p> <p>运行之后。a，b的值互换，a1 的值是a的地址。b1的值是b的地址。指针的值没变。</p> <p>&nbsp;</p> <p>看看参数是一个指针的引用的：</p> <p>void fun1(int *&amp;a, int *&amp;b){<br>&nbsp;&nbsp;&nbsp; int *tem = b;<br>&nbsp;&nbsp;&nbsp; b = a;<br>&nbsp;&nbsp;&nbsp; a = tem;<br>}  <p>&nbsp;  <p>&nbsp;&nbsp;&nbsp; int a = 1;<br>&nbsp;&nbsp;&nbsp; int b = 2;<br>&nbsp;&nbsp;&nbsp; int *a1 = &amp;a;<br>&nbsp;&nbsp;&nbsp; int *b1 = &amp;b;<br>&nbsp;&nbsp;&nbsp;&nbsp; fun1(a1,b1);  <p>结果是：a1 跟 b1 的值交换。a1的值是b的地址，b1的值是a的地址。&nbsp;a，b的值不变。也就是说，指针的值改变了。a，b的值没有变。</p> <p>&nbsp;</p> <p>汇编代码：</p> <p>调用的:</p> <p>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-4], 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;a<br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-C], 2&nbsp;&nbsp;&nbsp;&nbsp; ;b<br>lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr ss:[ebp-4]&nbsp;&nbsp;;a的地址 <br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-8], eax&nbsp; ;给*a1赋值<br>lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr ss:[ebp-C]&nbsp;&nbsp; ;b的地址<br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-10], ecx&nbsp; ;给*b1赋值<br>lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;edx, dword ptr ss:[ebp-10]&nbsp; ;b1的地址&nbsp; <br>push&nbsp;&nbsp;&nbsp; edx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; 参数2&nbsp;&nbsp; 从右向左压栈的<br>lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr ss:[ebp-8]&nbsp;&nbsp;&nbsp; ;a1的地址&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>push&nbsp;&nbsp;&nbsp; eax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; 参数1<br>call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00401000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; fun1的地址  <p>&nbsp;  <p>fun1的汇编：  <p>mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr ss:[ebp+C]&nbsp;&nbsp;&nbsp;&nbsp; ;参数2&nbsp;&nbsp; b1的地址<br>mov&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr ds:[eax]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;ecx为&nbsp;b1的值 b的地址&nbsp;<br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-4], ecx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;b1的值 b的地址&nbsp; 给tem<br>mov&nbsp;&nbsp;&nbsp;&nbsp; edx, dword ptr ss:[ebp+C]&nbsp;&nbsp;&nbsp;&nbsp; ;参数2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b1的地址&nbsp;<br>mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr ss:[ebp+8]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;参数1&nbsp;&nbsp;&nbsp;&nbsp; a1的地址<br>mov&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr ds:[eax]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;ecx为&nbsp; a1的值 a的地址<br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ds:[edx], ecx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;b1的值 现在就是a的地址呢。<br>mov&nbsp;&nbsp;&nbsp;&nbsp; edx, dword ptr ss:[ebp+8]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;参数1&nbsp;&nbsp;&nbsp;&nbsp; a1的地址<br>mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr ss:[ebp-4]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;tem的值 以前b1的值 b的地址<br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ds:[edx], eax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;a1的值 现在就是b的地址呢。</p> <p>&nbsp;</p> <p>今天淘宝的书到了。晚上回家。就有书看了。呵呵。</p><img src ="http://www.cppblog.com/xlincn/aggbug/29653.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xlincn/" target="_blank">冬天的林</a> 2007-08-09 17:57 <a href="http://www.cppblog.com/xlincn/archive/2007/08/09/29653.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基本概念:传说的this指针</title><link>http://www.cppblog.com/xlincn/archive/2007/08/09/29615.html</link><dc:creator>冬天的林</dc:creator><author>冬天的林</author><pubDate>Wed, 08 Aug 2007 17:27:00 GMT</pubDate><guid>http://www.cppblog.com/xlincn/archive/2007/08/09/29615.html</guid><wfw:comment>http://www.cppblog.com/xlincn/comments/29615.html</wfw:comment><comments>http://www.cppblog.com/xlincn/archive/2007/08/09/29615.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/xlincn/comments/commentRss/29615.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xlincn/services/trackbacks/29615.html</trackback:ping><description><![CDATA[<p>写一个小例子反汇编找找:</p> <p>&nbsp;</p> <p>class A<br>{<br>&nbsp;&nbsp;&nbsp; public:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int bb;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int aa;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void fun(int _aa){aa = _aa;};<br>};  <p>&nbsp; <p><br>&nbsp;&nbsp;&nbsp; A a; <br>&nbsp;&nbsp;&nbsp; a.bb = 4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //说明: a的地址就是bb的地址，也是this的值。(注意：地址和值的说法)<br>&nbsp;&nbsp;&nbsp; a.fun(9);<br> <p>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-8], 4<br>push&nbsp;&nbsp;&nbsp; 9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; 参数1<br>lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr ss:[ebp-8]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;隐藏的参数2&nbsp;&nbsp;&nbsp;&nbsp; this指针 a的地址 bb的地址<br>call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00401040&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; fun的地址 <p>&nbsp; <p>fun的汇编:<br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-4], ecx<br>mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr ss:[ebp-4]&nbsp; ;传说的this指针终于出现了。呵呵<br>mov&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr ss:[ebp+8]&nbsp; ;参数1&nbsp;&nbsp;&nbsp; 9 <br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ds:[eax+4], ecx&nbsp; ;eax+4&nbsp; aa 的地址</p> <p>&nbsp;</p> <p>太晚了。明天还要上班。今天就研究到这里。睡觉了。</p><img src ="http://www.cppblog.com/xlincn/aggbug/29615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xlincn/" target="_blank">冬天的林</a> 2007-08-09 01:27 <a href="http://www.cppblog.com/xlincn/archive/2007/08/09/29615.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基本概念:函数的传值(3)</title><link>http://www.cppblog.com/xlincn/archive/2007/08/08/29604.html</link><dc:creator>冬天的林</dc:creator><author>冬天的林</author><pubDate>Wed, 08 Aug 2007 15:09:00 GMT</pubDate><guid>http://www.cppblog.com/xlincn/archive/2007/08/08/29604.html</guid><wfw:comment>http://www.cppblog.com/xlincn/comments/29604.html</wfw:comment><comments>http://www.cppblog.com/xlincn/archive/2007/08/08/29604.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/xlincn/comments/commentRss/29604.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xlincn/services/trackbacks/29604.html</trackback:ping><description><![CDATA[<p>无语。发现 windows live writer 跟google输入法有冲突。把边栏打开，输入法就用不了。</p> <p>继续函数的传值。现在应该是按引用传递了。看代码:</p> <p><br>class A<br>{<br>&nbsp;&nbsp;&nbsp; public:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ii;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iii;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char iiii;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char iiiii;<br>}; </p> <p>void fun1(A* a){<br>&nbsp;&nbsp;&nbsp; a-&gt;iiii&nbsp; = 'a';<br>&nbsp;&nbsp;&nbsp; a-&gt;iiiii = 'b';<br>}  <p>void fun2(A&amp; a){<br>&nbsp;&nbsp;&nbsp; a.iiii&nbsp; = 'c';<br>&nbsp;&nbsp;&nbsp; a.iiiii = 'd';<br>} </p> <p>&nbsp;</p> <p>fun1的汇编:</p> <p>push&nbsp;&nbsp;&nbsp; ebp<br>mov&nbsp;&nbsp;&nbsp;&nbsp; ebp, esp<br>mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr ss:[ebp+8]<br>mov&nbsp;&nbsp;&nbsp;&nbsp; byte ptr ds:[eax+C], 61<br>mov&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr ss:[ebp+8]<br>mov&nbsp;&nbsp;&nbsp;&nbsp; byte ptr ds:[ecx+D], 62<br>pop&nbsp;&nbsp;&nbsp;&nbsp; ebp<br>retn  <p>fun2的汇编:</p> <p>push&nbsp;&nbsp;&nbsp; ebp<br>mov&nbsp;&nbsp;&nbsp;&nbsp; ebp, esp<br>mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr ss:[ebp+8]<br>mov&nbsp;&nbsp;&nbsp;&nbsp; byte ptr ds:[eax+C], 63<br>mov&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr ss:[ebp+8]<br>mov&nbsp;&nbsp;&nbsp;&nbsp; byte ptr ds:[ecx+D], 64<br>pop&nbsp;&nbsp;&nbsp;&nbsp; ebp<br>retn</p> <p>有区别吗？没区别。指针，引用一样。</p> <p>&nbsp;</p> <p>看调用的:</p> <p>A a;<br>a.iii&nbsp;&nbsp;&nbsp; = 1;<br>fun1(&amp;a); </p> <p>汇编</p> <p>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-8], 1&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;;a.iii赋值<br>lea&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr ss:[ebp-10]&nbsp; &nbsp;;a的地址<br>push&nbsp;&nbsp;&nbsp; eax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; ;a的地址压入栈<br>call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00401000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;fun1的地址</p> <p>&nbsp;</p> <p>A b;<br>b.iii = 2;<br>fun2(b);</p> <p>汇编</p> <p>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-18], 2&nbsp;&nbsp;&nbsp;&nbsp; ;b.iii赋值<br>lea&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr ss:[ebp-20]&nbsp;&nbsp;&nbsp; ;b的地址<br>push&nbsp;&nbsp;&nbsp; ecx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;b的地址压入栈<br>call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00401020&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;fun2的地址&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p> <p>&nbsp;</p> <p>结论：</p> <p>把类的第一个成员变量的地址压入栈。</p><img src ="http://www.cppblog.com/xlincn/aggbug/29604.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xlincn/" target="_blank">冬天的林</a> 2007-08-08 23:09 <a href="http://www.cppblog.com/xlincn/archive/2007/08/08/29604.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基本概念:函数的传值(2)</title><link>http://www.cppblog.com/xlincn/archive/2007/08/08/29563.html</link><dc:creator>冬天的林</dc:creator><author>冬天的林</author><pubDate>Wed, 08 Aug 2007 05:16:00 GMT</pubDate><guid>http://www.cppblog.com/xlincn/archive/2007/08/08/29563.html</guid><wfw:comment>http://www.cppblog.com/xlincn/comments/29563.html</wfw:comment><comments>http://www.cppblog.com/xlincn/archive/2007/08/08/29563.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/xlincn/comments/commentRss/29563.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xlincn/services/trackbacks/29563.html</trackback:ping><description><![CDATA[<p>看了Thinking c++第10章的传值方式传递和返回这一节。不是很明白。</p> <p>午休的时候。写了一个例子，反编译了看看。</p> <p>#include &lt;stdio.h&gt;<br>class A<br>{<br>&nbsp;&nbsp;&nbsp; public:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ii;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iii;<br>};  <p>void fun1(A a){<br>&nbsp;&nbsp;&nbsp; a.i++;<br>}  <p>int main(int argc, char *argv[])<br>{<br>&nbsp;&nbsp;&nbsp; printf("start...\n");<br>&nbsp;&nbsp;&nbsp; A a;<br>&nbsp;&nbsp;&nbsp; a.i&nbsp;&nbsp;&nbsp; = 1;<br>&nbsp;&nbsp;&nbsp; a.ii&nbsp;&nbsp; = 2;<br>&nbsp;&nbsp;&nbsp; a.iii&nbsp; = 3;<br>&nbsp;&nbsp;&nbsp; fun1(a);<br>&nbsp;&nbsp;&nbsp; printf("end...\n");<br>&nbsp;&nbsp;&nbsp; return 0;<br>} <p>&nbsp;</p> <p>&nbsp;</p> <p>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-C], 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;i<br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-8], 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;ii<br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-4], 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;iii<br>sub&nbsp;&nbsp;&nbsp;&nbsp; esp, 0C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>mov&nbsp;&nbsp;&nbsp;&nbsp; eax, esp<br>mov&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr ss:[ebp-C]<br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ds:[eax], ecx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>mov&nbsp;&nbsp;&nbsp;&nbsp; edx, dword ptr ss:[ebp-8]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ds:[eax+4], edx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>mov&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr ss:[ebp-4]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ds:[eax+8], ecx&nbsp;<br>call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00401000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;fun1的地址 <p>&nbsp; <p>看了上面的汇编代码，基本都明白了。 <p>把对象A的成员变量按着定义的顺序一个一个的COPY到栈中。</p><img src ="http://www.cppblog.com/xlincn/aggbug/29563.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xlincn/" target="_blank">冬天的林</a> 2007-08-08 13:16 <a href="http://www.cppblog.com/xlincn/archive/2007/08/08/29563.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EditPlus + VC2005的配置</title><link>http://www.cppblog.com/xlincn/archive/2007/08/08/29556.html</link><dc:creator>冬天的林</dc:creator><author>冬天的林</author><pubDate>Wed, 08 Aug 2007 02:39:00 GMT</pubDate><guid>http://www.cppblog.com/xlincn/archive/2007/08/08/29556.html</guid><wfw:comment>http://www.cppblog.com/xlincn/comments/29556.html</wfw:comment><comments>http://www.cppblog.com/xlincn/archive/2007/08/08/29556.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/xlincn/comments/commentRss/29556.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xlincn/services/trackbacks/29556.html</trackback:ping><description><![CDATA[<p>学C++，只看书，不动手写代码怎么可能呢。可是写一些小的例子。用VC2005太麻烦了。</p>
EditPlus编译运行的方法：<br><br>
<p>在C:\Program Files\Microsoft Visual Studio 8\VC\bin\目录下放一个.bat文件</p>
<p>cl.bat 内容如下:</p>
<p>call "%VS80COMNTOOLS%vsvars32.bat"<br>cl.exe /Od /D "_WINDOWS"&nbsp; /D "_UNICODE" /D "UNICODE" /EHsc /MTd /W3 /TP&nbsp;&nbsp; "%1" </p>
<p>&nbsp; </p>
<p>编译配置：  </p>
<p>Menu text:make </p>
<p>Command:C:\Program Files\Microsoft Visual Studio 8\VC\bin\cl.bat </p>
<p>Argument:$(FilePath) </p>
<p>Initial directory:$(FileDir) </p>
<p>&nbsp; </p>
<p>运行的配置: </p>
<p>Menu text:run </p>
<p>Command:$(FileNameNoExt) </p>
<p>Argument:  </p>
<p>Initial directory:$(FileDir) </p>
<p>&nbsp; </p>
<p>OK。写完代码，Ctrl + 1 编译。Ctrl + 2运行。真方便。</p><img src ="http://www.cppblog.com/xlincn/aggbug/29556.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xlincn/" target="_blank">冬天的林</a> 2007-08-08 10:39 <a href="http://www.cppblog.com/xlincn/archive/2007/08/08/29556.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基本概念:函数的传值(1)</title><link>http://www.cppblog.com/xlincn/archive/2007/08/08/29534.html</link><dc:creator>冬天的林</dc:creator><author>冬天的林</author><pubDate>Tue, 07 Aug 2007 16:18:00 GMT</pubDate><guid>http://www.cppblog.com/xlincn/archive/2007/08/08/29534.html</guid><wfw:comment>http://www.cppblog.com/xlincn/comments/29534.html</wfw:comment><comments>http://www.cppblog.com/xlincn/archive/2007/08/08/29534.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xlincn/comments/commentRss/29534.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xlincn/services/trackbacks/29534.html</trackback:ping><description><![CDATA[<p>在淘宝定了&lt;&lt;C++程序设计语言(特别版)&gt;&gt; 后天才能到货。从网上下了&lt;&lt;C++ Primer中文版&gt;&gt;的电子书看看。找找C++的感觉先。</p> <p>先看看基本类型的传值方式:</p> <p>写了3个方法。反编译看看。</p> <p>void fun1(int a){<br>&nbsp;&nbsp;&nbsp;&nbsp; a ++;<br>}  <p>void fun2(int &amp;a){<br>&nbsp;&nbsp;&nbsp; a++;<br>}  <p>void fun3(int *a){<br>&nbsp;&nbsp;&nbsp; (*a)++;<br>}  <p>&nbsp;  <p>fun1的汇编代码:  <p>push&nbsp;&nbsp;&nbsp; ebp<br>mov&nbsp;&nbsp;&nbsp;&nbsp; ebp, esp<br>mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr ss:[ebp+8]<br>add&nbsp;&nbsp;&nbsp;&nbsp; eax, 1<br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp+8], eax<br>pop&nbsp;&nbsp;&nbsp;&nbsp; ebp<br>retn  <p>fun2的汇编代码:  <p>push&nbsp;&nbsp;&nbsp; ebp<br>mov&nbsp;&nbsp;&nbsp;&nbsp; ebp, esp<br>mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr ss:[ebp+8]<br>mov&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr ds:[eax]<br>add&nbsp;&nbsp;&nbsp;&nbsp; ecx, 1<br>mov&nbsp;&nbsp;&nbsp;&nbsp; edx, dword ptr ss:[ebp+8]<br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ds:[edx], ecx<br>pop&nbsp;&nbsp;&nbsp;&nbsp; ebp<br>retn  <p>fun3的汇编代码:  <p>push&nbsp;&nbsp;&nbsp; ebp<br>mov&nbsp;&nbsp;&nbsp;&nbsp; ebp, esp<br>mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr ss:[ebp+8]<br>mov&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr ds:[eax]<br>add&nbsp;&nbsp;&nbsp;&nbsp; ecx, 1<br>mov&nbsp;&nbsp;&nbsp;&nbsp; edx, dword ptr ss:[ebp+8]<br>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ds:[edx], ecx<br>pop&nbsp;&nbsp;&nbsp;&nbsp; ebp<br>retn</p> <p>fun2和fun3的汇编代码一模一样。给我感觉。引用跟指针一样？</p> <p>在看看调用的：</p> <p>int a = 0;<br>fun1(a);  <p>汇编1:</p> <p>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-4], 0<br>mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr ss:[ebp-4]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>push&nbsp;&nbsp;&nbsp; eax<br>call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00401000&nbsp;&nbsp; ;函数fun1的地址</p> <p>&nbsp; <p>int b =1;<br>fun2(b); <p>汇编2:</p> <p>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-8], 1<br>lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; edx, dword ptr ss:[ebp-8]<br>push&nbsp;&nbsp;&nbsp; edx<br>call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00401010&nbsp; ;函数fun2的地址 <p>&nbsp; <p>int c =2;<br>fun3(&amp;c); <p>汇编3: <p>mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr ss:[ebp-C], 2<br>lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr ss:[ebp-C]<br>push&nbsp;&nbsp;&nbsp; ecx<br>call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00401030&nbsp; ;函数fun3的地址 <p>&nbsp; <p>汇编1 把a的值压入栈,传值的拷贝； 汇编2 汇编3&nbsp;分别是把&nbsp;b&nbsp;，c的地址压入栈&nbsp;,都是传值的地址。 <p>给我感觉。引用是指针的语法糖？</p><img src ="http://www.cppblog.com/xlincn/aggbug/29534.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xlincn/" target="_blank">冬天的林</a> 2007-08-08 00:18 <a href="http://www.cppblog.com/xlincn/archive/2007/08/08/29534.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从今天开始学习C++</title><link>http://www.cppblog.com/xlincn/archive/2007/08/07/29496.html</link><dc:creator>冬天的林</dc:creator><author>冬天的林</author><pubDate>Tue, 07 Aug 2007 09:56:00 GMT</pubDate><guid>http://www.cppblog.com/xlincn/archive/2007/08/07/29496.html</guid><wfw:comment>http://www.cppblog.com/xlincn/comments/29496.html</wfw:comment><comments>http://www.cppblog.com/xlincn/archive/2007/08/07/29496.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/xlincn/comments/commentRss/29496.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xlincn/services/trackbacks/29496.html</trackback:ping><description><![CDATA[从今天开始学习C++。<br>以后关于C++的东东就发在这样呢。 
<img src ="http://www.cppblog.com/xlincn/aggbug/29496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xlincn/" target="_blank">冬天的林</a> 2007-08-07 17:56 <a href="http://www.cppblog.com/xlincn/archive/2007/08/07/29496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>