﻿<?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>博客园-所有随笔区</title><link>http://www.cnblogs.com/all/</link><description>程序员的网上家园</description><language>zh-cn</language><lastBuildDate>Sat, 11 Feb 2012 16:24:28 GMT</lastBuildDate><pubDate>Sat, 11 Feb 2012 16:24:28 GMT</pubDate><ttl>60</ttl><item><title>android 手势编程</title><link>http://www.cnblogs.com/CJzhang/archive/2012/02/12/2347277.html</link><dc:creator>cjzhang</dc:creator><author>cjzhang</author><pubDate>Sat, 11 Feb 2012 16:24:00 GMT</pubDate><guid>http://www.cnblogs.com/CJzhang/archive/2012/02/12/2347277.html</guid><description><![CDATA[<p><h1 class="postTitle">GestureDetector</h1>
<p>&nbsp;&nbsp;</p>
<p align="left">　 &nbsp; &nbsp;<span>interface &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GestureDetector.OnDoubleTapListener</span></p>
<p align="left">　　<span>interface &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GestureDetector.OnGestureListener</span>　　在有手势动作发生时，通知的监听器</p>
<p align="left">　　class &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GestureDetector.SimpleOnGestureListener　　当只需要监听部分手势时，用于扩展的便捷类</p>
<p align="left">&nbsp;</p>
<p align="left">public boolean&nbsp;<strong>isLongpressEnabled</strong>&nbsp;() &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;如果允许长按事件，则返回true，否则为false</p>
<p align="left">public boolean&nbsp;<strong>onTouchEvent</strong><strong>&nbsp;</strong>(<a href="http://androidappdocs.appspot.com/reference/android/view/MotionEvent.html">MotionEvent</a>&nbsp;ev) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</p>
<p>public void&nbsp;<strong>setIsLongpressEnabled</strong><strong>&nbsp;</strong>(boolean isLongpressEnabled)</p>
<p><span>public void&nbsp;</span><strong><span>setOnDoubleTapListener</span></strong><strong>&nbsp;</strong><span>(<a href="http://androidappdocs.appspot.com/reference/android/view/GestureDetector.OnDoubleTapListener.html"><span>GestureDetector.OnDoubleTapListener</span></a>onDoubleTapListener</span></p>
<h1>GestureDetector.OnGestureListener</h1>
<p><span><br /></span></p>
<table id="pubmethods" class="jd-sumtable">
<tbody>
<tr><th colspan="12">Public Methods</th></tr>
<tr class="alt-color api apilevel-1">
<td class="jd-typecol">abstract boolean</td>
<td class="jd-linkcol" width="100%"><span class="sympad"><a href="http://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html#onDown(android.view.MotionEvent)">onDown</a></span>(<a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a>&nbsp;e)
<div class="jd-descrdiv">Notified when a tap occurs with the down&nbsp;<code><a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a></code>&nbsp;that triggered it.</div>
</td>
</tr>
<tr class=" api apilevel-1">
<td class="jd-typecol">abstract boolean</td>
<td class="jd-linkcol" width="100%"><span class="sympad"><a href="http://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html#onFling(android.view.MotionEvent, android.view.MotionEvent, float, float)">onFling</a></span>(<a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a>&nbsp;e1,&nbsp;<a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a>&nbsp;e2, float velocityX, float velocityY)
<div class="jd-descrdiv">Notified of a fling event when it occurs with the initial on down&nbsp;<code><a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a></code>&nbsp;and the matching up&nbsp;<code><a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a></code>.</div>
</td>
</tr>
<tr class="alt-color api apilevel-1">
<td class="jd-typecol">abstract void</td>
<td class="jd-linkcol" width="100%"><span class="sympad"><a href="http://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html#onLongPress(android.view.MotionEvent)">onLongPress</a></span>(<a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a>&nbsp;e)
<div class="jd-descrdiv">Notified when a long press occurs with the initial on down&nbsp;<code><a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a></code>&nbsp;that trigged it.</div>
</td>
</tr>
<tr class=" api apilevel-1">
<td class="jd-typecol">abstract boolean</td>
<td class="jd-linkcol" width="100%"><span class="sympad"><a href="http://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html#onScroll(android.view.MotionEvent, android.view.MotionEvent, float, float)">onScroll</a></span>(<a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a>&nbsp;e1,&nbsp;<a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a>&nbsp;e2, float distanceX, float distanceY)
<div class="jd-descrdiv">Notified when a scroll occurs with the initial on down&nbsp;<code><a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a></code>&nbsp;and the current move&nbsp;<code><a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a></code>.</div>
</td>
</tr>
<tr class="alt-color api apilevel-1">
<td class="jd-typecol">abstract void</td>
<td class="jd-linkcol" width="100%"><span class="sympad"><a href="http://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html#onShowPress(android.view.MotionEvent)">onShowPress</a></span>(<a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a>&nbsp;e)
<div class="jd-descrdiv">The user has performed a down&nbsp;<code><a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a></code>&nbsp;and not performed a move or up yet.</div>
</td>
</tr>
<tr class=" api apilevel-1">
<td class="jd-typecol">abstract boolean</td>
<td class="jd-linkcol" width="100%"><span class="sympad"><a href="http://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html#onSingleTapUp(android.view.MotionEvent)">onSingleTapUp</a></span>(<a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a>&nbsp;e)
<div class="jd-descrdiv">Notified when a tap occurs with the up&nbsp;<code><a href="http://developer.android.com/reference/android/view/MotionEvent.html">MotionEvent</a></code>&nbsp;that triggered it.</div>
</td>
</tr>
</tbody>
</table>
<p><span><br /></span></p><img src="aggbug/2347277.html?type=0" width="1" height="1" alt=""/><p>作者: <a href="" target="_blank">cjzhang</a> 发表于 2012-02-12 00:24 <a href="http://www.cnblogs.com/CJzhang/archive/2012/02/12/2347277.html" target="_blank">原文链接</a></p><p>评论: 0　<a href="http://www.cnblogs.com/CJzhang/archive/2012/02/12/2347277.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/CJzhang/archive/2012/02/12/2347277.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/130839/" target="_blank">初创企业能从Linux学习些什么</a><span style="color:gray">(2012-02-11 23:19)</span><br/>· <a href="http://news.cnblogs.com/n/130838/" target="_blank">Facebook单帖回复数超百万创吉尼斯世界纪录</a><span style="color:gray">(2012-02-11 23:14)</span><br/>· <a href="http://news.cnblogs.com/n/130837/" target="_blank">春节后礼品回收iPhone成新宠燕窝被冷落</a><span style="color:gray">(2012-02-11 20:50)</span><br/>· <a href="http://news.cnblogs.com/n/130836/" target="_blank">分析称苹果近1000亿现金储备最佳用途是派息</a><span style="color:gray">(2012-02-11 20:41)</span><br/>· <a href="http://news.cnblogs.com/n/130835/" target="_blank">扎克伯格11件蠢事：曾同意将Facebook卖给雅虎</a><span style="color:gray">(2012-02-11 20:37)</span><br/></p><p>编辑推荐：<a href="http://kb.cnblogs.com/page/130672/" target="_blank">高级编程语言的发展历程</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">我的园子</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://q.cnblogs.com/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Beauty Is in Simplicity 美在于简单</title><link>http://www.cnblogs.com/bangbang/archive/2012/02/12/2347279.html</link><dc:creator>蚂蚁蚂蚁</dc:creator><author>蚂蚁蚂蚁</author><pubDate>Sat, 11 Feb 2012 16:24:00 GMT</pubDate><guid>http://www.cnblogs.com/bangbang/archive/2012/02/12/2347279.html</guid><description><![CDATA[<p><p>J&#248;rn &#216;lmheim<br />&nbsp;
<br /></p>THERE iS ONE qUOTE, from Plato, that I think is particularly good for all software developers to know and keep close to their hearts:<br />Beauty of style and harmony and grace and good rhythm depends on simplicity.<br />引用柏拉图的一句话，我认为尤其对软件开发人员有用且要铭记于心的。<br />美丽的风格与和谐，优雅和良好的节奏取决于简单。&#8232;In one sentence, this sums up the values that we as software developers should<br />aspire to.<br />一句话中，它总结了作为程序员的我们应该追求的价值。&#8232;There are a number of things we strive for in our code:<br />Readability<br />&nbsp;Maintainability<br />Speed of development <br />The elusive quality of beauty <br />有一些事情是在我们代码中应该追求的：<br />可读性<br />可维护性<br />开发速度<br />美感<br />Plato is telling us that the enabling factor for all of these qualities is simplicity. &#8232;What is beautiful code? This is potentially a very subjective question. Per- ception of beauty depends heavily on individual background, just as much of our perception of anything depends on our background. People educated in the arts have a different perception of (or at least approach to) beauty than people educated in the sciences. Arts majors tend to approach beauty in software by comparing software to works of art, while science majors tend to talk about symmetry and the golden ratio, trying to reduce things to formulae. In my experience, simplicity is the foundation of most of the arguments from both sides. <br />柏拉图告诉我们，所有这些品质的最有利因素就是简单。怎样才是美的代码？这可能是一个非常主观的问题。对美的认知严重依赖于个人的背景。文科的人与理科的人对美有不同的认识。文科生倾向于拿软件和艺术作品相比来寻找软件中的美，而理科生倾向于谈论对称和黄金比例，尝试把事情简化为公式。依我的经验来看，简单是双方多数考量因素的基础。<br />Think about source code that you have studied. If you haven&#8217;t spent time studying other people&#8217;s code, stop reading this right now and find some open source code to study. Seriously! I mean it! Go search the Web for some code in your language of choice, written by some well-known, acknowledged expert.<br />想想你学过的源码。如果你还没花时间学习过其他人的代码，先别往下看了，找一些开源代码学一下。不开玩笑，真的。在网上搜一些你偏好的编程语言的，由公认的有名的专家写的代码。<br />You&#8217;re back? Good. Where were we? Ah, yes...I have found that code that resonates with me, and that I consider beautiful, has a number of properties in common. Chief among these is simplicity. I find that no matter how complex the total application or system is, the individual parts have to be kept simple: simple objects with a single responsibility containing similarly simple, focused methods with descriptive names. Some people think the idea of having short methods of 5&#8211;10 lines of code is extreme, and some languages make it very hard to do, but I think that such brevity is a desirable goal nonetheless.<br />看完了？很好。我们到哪了？啊，是的...我发现能引起我的共鸣的，美的代码有一些共同的特性。主要的一点就是简单。我发现不管整个应用或是系统多么复杂，每一个独立的部分都很简单：每个对象都职责单一，并带有一些简单内聚并有描述性名字的方法。一些人认为方法5-10行为宜。一些编程语言很难做到这一点，但我仍认为这种简洁程度是合理的。<br />The bottom line is that beautiful code is simple code. Each individual part is kept simple with simple responsibilities and simple relationships with the other parts of the system. This is the way we can keep our systems maintain- able over time, with clean, simple, testable code, ensuring a high speed of development throughout the lifetime of the system.<br />美的代码就是简单的代码。每个独立的部分都保持简单的职责，与系统其他部分简单的关系。这就是我们能保持我们的系统长期可维护性，拥有干净，简单可测试的代码，在整个系统生命周期保证高速的开发的方法。<br />Beauty is born of and found in simplicity.<br />美源于简单。<br /><img src="aggbug/2347279.html?type=0" width="1" height="1" alt=""/><p>作者: <a href="" target="_blank">蚂蚁蚂蚁</a> 发表于 2012-02-12 00:24 <a href="http://www.cnblogs.com/bangbang/archive/2012/02/12/2347279.html" target="_blank">原文链接</a></p><p>评论: 0　<a href="http://www.cnblogs.com/bangbang/archive/2012/02/12/2347279.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bangbang/archive/2012/02/12/2347279.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/130839/" target="_blank">初创企业能从Linux学习些什么</a><span style="color:gray">(2012-02-11 23:19)</span><br/>· <a href="http://news.cnblogs.com/n/130838/" target="_blank">Facebook单帖回复数超百万创吉尼斯世界纪录</a><span style="color:gray">(2012-02-11 23:14)</span><br/>· <a href="http://news.cnblogs.com/n/130837/" target="_blank">春节后礼品回收iPhone成新宠燕窝被冷落</a><span style="color:gray">(2012-02-11 20:50)</span><br/>· <a href="http://news.cnblogs.com/n/130836/" target="_blank">分析称苹果近1000亿现金储备最佳用途是派息</a><span style="color:gray">(2012-02-11 20:41)</span><br/>· <a href="http://news.cnblogs.com/n/130835/" target="_blank">扎克伯格11件蠢事：曾同意将Facebook卖给雅虎</a><span style="color:gray">(2012-02-11 20:37)</span><br/></p><p>编辑推荐：<a href="http://kb.cnblogs.com/page/130672/" target="_blank">高级编程语言的发展历程</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">我的园子</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://q.cnblogs.com/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Automate Your Coding Standard  自动化你的编码标准</title><link>http://www.cnblogs.com/bangbang/archive/2012/02/12/2347276.html</link><dc:creator>蚂蚁蚂蚁</dc:creator><author>蚂蚁蚂蚁</author><pubDate>Sat, 11 Feb 2012 16:23:00 GMT</pubDate><guid>http://www.cnblogs.com/bangbang/archive/2012/02/12/2347276.html</guid><description><![CDATA[<p><img src="http://www.cnblogs.com/bangbang/aggbug/2347276.html?type=1" width="1" height="1" alt=""/><p>作者: <a href="http://www.cnblogs.com/bangbang/" target="_blank">蚂蚁蚂蚁</a> 发表于 2012-02-12 00:23 <a href="http://www.cnblogs.com/bangbang/archive/2012/02/12/2347276.html" target="_blank">原文链接</a></p><p>评论: 0　<a href="http://www.cnblogs.com/bangbang/archive/2012/02/12/2347276.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bangbang/archive/2012/02/12/2347276.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/130839/" target="_blank">初创企业能从Linux学习些什么</a><span style="color:gray">(2012-02-11 23:19)</span><br/>· <a href="http://news.cnblogs.com/n/130838/" target="_blank">Facebook单帖回复数超百万创吉尼斯世界纪录</a><span style="color:gray">(2012-02-11 23:14)</span><br/>· <a href="http://news.cnblogs.com/n/130837/" target="_blank">春节后礼品回收iPhone成新宠燕窝被冷落</a><span style="color:gray">(2012-02-11 20:50)</span><br/>· <a href="http://news.cnblogs.com/n/130836/" target="_blank">分析称苹果近1000亿现金储备最佳用途是派息</a><span style="color:gray">(2012-02-11 20:41)</span><br/>· <a href="http://news.cnblogs.com/n/130835/" target="_blank">扎克伯格11件蠢事：曾同意将Facebook卖给雅虎</a><span style="color:gray">(2012-02-11 20:37)</span><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">我的园子</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://q.cnblogs.com/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Act with Prudence 三思而后行</title><link>http://www.cnblogs.com/bangbang/archive/2012/02/12/2347275.html</link><dc:creator>蚂蚁蚂蚁</dc:creator><author>蚂蚁蚂蚁</author><pubDate>Sat, 11 Feb 2012 16:21:00 GMT</pubDate><guid>http://www.cnblogs.com/bangbang/archive/2012/02/12/2347275.html</guid><description><![CDATA[<p><br />Seb Rose<br />Whatever you undertake, act with prudence and consider the consequences.<br />&#8212;Anon<br />无论做什么事情，都要三思而后行。-Anon<br />NO MATTER HOW COMFORTABLE A SCHEDULE LOOKS at the beginning of an iteration, you can&#8217;t avoid being under pressure some of the time. If you find yourself having to choose between &#8220;doing it right&#8221; and &#8220;doing it quick,&#8221; it is often appealing to &#8220;do it quick&#8221; with the understanding that you&#8217;ll come back and fix it later. When you make this promise to yourself, your team, and your customer, you mean it. But all too often, the next iteration brings new prob- lems and you become focused on them. This sort of deferred work is known as technical debt, and it is not your friend. Specifically, Martin Fowler calls this deliberate technical debt in his taxonomy of technical debt,* and it should not be confused with inadvertent technical debt.<br />在一个迭代之初，不论你计划的如何有条不紊，有时你仍然会感到压力重重。如果要你在&#8220;干好&#8221;和&#8220;快点交工&#8221;之间权衡，人们往往会倾向于&#8220;快点交工&#8221;，然后回头有时间把它修好。当你向自己，你的团队和你的客户许下承诺时，你也是这么想的。但往往是，下一个迭代你又忙于出现的一些新问题。这些推迟的工作被称为技术债，并不是什么好事。Martin Fowler在他的技术债分类学中将其称为deliberate technical debt（故意技术债）*，以便和inadvertent technical debt（无意技术债）区分。<br />* http://martinfowler.com/bliki/TechnicalDebtQuadrant.html<br />Technical debt is like a loan: you benefit from it in the short term, but you have to pay interest on it until it is fully paid off. Shortcuts in the code make it harder to add features or refactor your code. They are breeding grounds for defects and brittle test cases. The longer you leave it, the worse it gets. By the time you get around to undertaking the original fix, there may be a whole stack of not-quite-right design choices layered on top of the original problem, making the code much harder to refactor and correct. In fact, it is often only when things have got so bad that you must fix the original problem, that you actually do go back to fix it. And by then, it is often so hard to fix that you really can&#8217;t afford the time or the risk.<br />技术债就像债务：你短期会从中获益，但在偿清前你要付利息。满足一时之需的代码使你难于添加新功能或者进行重构。它们是滋生缺陷和脆弱的测试用例的土壤。留它越久，危害越大。当你抽得时间来解决最初的那个问题时，将会有一堆不那么正确的设计方案掩盖于原来的问题之上，使代码愈发难于重构和修正。事实上，也仅当事情坏到你必须要修掉原来那个问题时，你才会真去修它。到那时因为你负担不起高昂的时间或者风险 ，修复它往往非常困难。<br />There are times when you must incur technical debt to meet a deadline or implement a thin slice of a feature. Try not to be in this position, but if the situ- ation absolutely demands it, then go ahead. But (and this is a big but) you must track technical debt and pay it back quickly, or things go rapidly downhill. As soon as you make the decision to compromise, write a task card or log it in your issue-tracking system to ensure that it does not get forgotten.<br />有时候为了应付最后期限或者实现一个小功能，你不得不引入技术债。尽量不要这么干，除非事态紧急。如果这么干了，你必须跟踪技术债并尽快偿清，否则事态会急转直下。一旦你决定妥协时，写一张任务卡片或者把它记录在你的问题跟踪系统，确保不要忘掉。<br />If you schedule repayment of the debt in the next iteration, the cost will be minimal. Leaving the debt unpaid will accrue interest, and that interest should be tracked to make the cost visible. This will emphasize the effect on Busi-ness value of the project&#8217;s technical debt and enables appropriate prioritization of the repayment. The choice of how to calculate and track the interest will depend on the particular project, but track it you must.<br />如果你把债务偿还计划在下一个迭代，成本是最小的。不偿还债务会增加利息，必须跟踪利息使成本可见。这样会突出项目的技术债对商业价值的影响，促使安排合适的优先级来偿还债务。选择怎样计算并跟踪利息取决于特定的项目，但你必须去做。<br />Pay off technical debt as soon as possible. It would be imprudent to do otherwise.<br />尽快的偿清技术债，否则是不明智的。<img src="aggbug/2347275.html?type=0" width="1" height="1" alt=""/><p>作者: <a href="" target="_blank">蚂蚁蚂蚁</a> 发表于 2012-02-12 00:21 <a href="http://www.cnblogs.com/bangbang/archive/2012/02/12/2347275.html" target="_blank">原文链接</a></p><p>评论: 0　<a href="http://www.cnblogs.com/bangbang/archive/2012/02/12/2347275.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bangbang/archive/2012/02/12/2347275.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/130839/" target="_blank">初创企业能从Linux学习些什么</a><span style="color:gray">(2012-02-11 23:19)</span><br/>· <a href="http://news.cnblogs.com/n/130838/" target="_blank">Facebook单帖回复数超百万创吉尼斯世界纪录</a><span style="color:gray">(2012-02-11 23:14)</span><br/>· <a href="http://news.cnblogs.com/n/130837/" target="_blank">春节后礼品回收iPhone成新宠燕窝被冷落</a><span style="color:gray">(2012-02-11 20:50)</span><br/>· <a href="http://news.cnblogs.com/n/130836/" target="_blank">分析称苹果近1000亿现金储备最佳用途是派息</a><span style="color:gray">(2012-02-11 20:41)</span><br/>· <a href="http://news.cnblogs.com/n/130835/" target="_blank">扎克伯格11件蠢事：曾同意将Facebook卖给雅虎</a><span style="color:gray">(2012-02-11 20:37)</span><br/></p><p>编辑推荐：<a href="http://kb.cnblogs.com/page/130672/" target="_blank">高级编程语言的发展历程</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">我的园子</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://q.cnblogs.com/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>C#复制文件夹</title><link>http://www.cnblogs.com/yyzq/archive/2012/02/12/2347273.html</link><dc:creator>在路上—书生</dc:creator><author>在路上—书生</author><pubDate>Sat, 11 Feb 2012 16:19:00 GMT</pubDate><guid>http://www.cnblogs.com/yyzq/archive/2012/02/12/2347273.html</guid><description><![CDATA[<p><p>昨天打算利用获取的文件夹下所有文件列表，然后在目标位置新建这个目录，后来发现很麻烦，实现起来有太多的无用的东西。在网上找了下高手的文章，无耻的用了人家的方法.......。但总的说还是递归的用法，只不过我没想到用DirectoryInfo这个类，一直在对着Directory想，Directory主要是静态方法，没有属性所以没法获取文件夹的更多信息。</p>
<p>贴代码：</p>
<div class="cnblogs_code">
<pre> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">bool</span> Copy(<span style="color: #0000ff;">string</span> sourcePath, <span style="color: #0000ff;">string</span> targetPath)<br />        {<br />            <span style="color: #0000ff;">bool</span> b=<span style="color: #0000ff;">false</span>;<br />            <span style="color: #0000ff;">try</span><br />            {<br />                <span style="color: #0000ff;">if</span> (Directory.Exists(sourcePath))<br />                {<br />                    <span style="color: #0000ff;">if</span> (!Directory.Exists(targetPath))<span style="color: #008000;">//</span><span style="color: #008000;">判断目标路径是否存在，不存在则创建</span><span style="color: #008000;"><br /></span>                    {<br />                        Directory.CreateDirectory(targetPath);<br />                    }<br />                    DirectoryInfo sDir = <span style="color: #0000ff;">new</span> DirectoryInfo(sourcePath);<br />                    DirectoryInfo[] dir = sDir.GetDirectories();<br />                    FileInfo[] file = sDir.GetFiles();<br />                    <span style="color: #0000ff;">foreach</span> (FileInfo f <span style="color: #0000ff;">in</span> file)<span style="color: #008000;">//</span><span style="color: #008000;">获取当前目录下的文件Copy到目标路径下</span><span style="color: #008000;"><br /></span>                    {<br />                        f.CopyTo(targetPath + <span style="color: #800000;">"</span><span style="color: #800000;">\\</span><span style="color: #800000;">"</span> + f.Name, <span style="color: #0000ff;">true</span>);<br />                    }<br />                    <span style="color: #0000ff;">foreach</span> (DirectoryInfo d <span style="color: #0000ff;">in</span> dir)<span style="color: #008000;">//</span><span style="color: #008000;">进入源目录的子目录进行递归.....</span><span style="color: #008000;"><br /></span>                    {<br />                        Copy(d.FullName, targetPath + <span style="color: #800000;">"</span><span style="color: #800000;">\\</span><span style="color: #800000;">"</span> + d.Name);<br />                    }<br />                    b = <span style="color: #0000ff;">true</span>;<br />                }<br />                <span style="color: #0000ff;">return</span> b;<br />            }<br />            <span style="color: #0000ff;">catch</span> {<br />                <span style="color: #0000ff;">return</span> b;<br />            }<br />        }</pre>
</div>
<p>菜鸟伤不起......<br /><br /></p><img src="aggbug/2347273.html?type=0" width="1" height="1" alt=""/><p>作者: <a href="" target="_blank">在路上—书生</a> 发表于 2012-02-12 00:19 <a href="http://www.cnblogs.com/yyzq/archive/2012/02/12/2347273.html" target="_blank">原文链接</a></p><p>评论: 0　<a href="http://www.cnblogs.com/yyzq/archive/2012/02/12/2347273.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/yyzq/archive/2012/02/12/2347273.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/130839/" target="_blank">初创企业能从Linux学习些什么</a><span style="color:gray">(2012-02-11 23:19)</span><br/>· <a href="http://news.cnblogs.com/n/130838/" target="_blank">Facebook单帖回复数超百万创吉尼斯世界纪录</a><span style="color:gray">(2012-02-11 23:14)</span><br/>· <a href="http://news.cnblogs.com/n/130837/" target="_blank">春节后礼品回收iPhone成新宠燕窝被冷落</a><span style="color:gray">(2012-02-11 20:50)</span><br/>· <a href="http://news.cnblogs.com/n/130836/" target="_blank">分析称苹果近1000亿现金储备最佳用途是派息</a><span style="color:gray">(2012-02-11 20:41)</span><br/>· <a href="http://news.cnblogs.com/n/130835/" target="_blank">扎克伯格11件蠢事：曾同意将Facebook卖给雅虎</a><span style="color:gray">(2012-02-11 20:37)</span><br/></p><p>编辑推荐：<a href="http://kb.cnblogs.com/page/130672/" target="_blank">高级编程语言的发展历程</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">我的园子</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://q.cnblogs.com/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Silverlight数据绑定转换示例</title><link>http://www.cnblogs.com/wpf123/archive/2012/02/12/2347267.html</link><dc:creator>WPF之家</dc:creator><author>WPF之家</author><pubDate>Sat, 11 Feb 2012 16:19:00 GMT</pubDate><guid>http://www.cnblogs.com/wpf123/archive/2012/02/12/2347267.html</guid><description><![CDATA[<p><div class="cnblogs_code">
<pre> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Grid </span><span style="color: #ff0000;">x:Name</span><span style="color: #0000ff;">="LayoutRoot"</span><span style="color: #ff0000;"> Background</span><span style="color: #0000ff;">="White"</span><span style="color: #0000ff;">&gt;</span><br />        <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Grid.Resources</span><span style="color: #0000ff;">&gt;</span><br />            <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">local:ColorConverter </span><span style="color: #ff0000;">x:Key</span><span style="color: #0000ff;">="ColorConverter"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">local:ColorConverter</span><span style="color: #0000ff;">&gt;</span><br />        <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">Grid.Resources</span><span style="color: #0000ff;">&gt;</span><br /><br />        <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Ellipse </span><span style="color: #ff0000;">Width</span><span style="color: #0000ff;">="300"</span><span style="color: #ff0000;"> Height</span><span style="color: #0000ff;">="200"</span><span style="color: #ff0000;"> Fill</span><span style="color: #0000ff;">="</span><span style="color: #808000;">{Binding Status,Converter={StaticResource ColorConverter},Mode=TwoWay}</span><span style="color: #0000ff;">"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">Ellipse</span><span style="color: #0000ff;">&gt;</span><br /><br />    <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">Grid</span><span style="color: #0000ff;">&gt;</span></pre>
</div>
<div class="cnblogs_code">
<div class="cnblogs_code">
<pre><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">enum</span> TrafficStatus<br />    {<br />        Stop,Ready,Go<br />    }<br /><br />    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> TrafficLight : INotifyPropertyChanged<br />    {<br />        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">event</span> PropertyChangedEventHandler PropertyChanged;<br />        <span style="color: #0000ff;">public</span> TrafficStatus Status<br />        {<br />            <span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span> status; }<br />            <span style="color: #0000ff;">set</span><br />            {<br />                status = value;<br />                <span style="color: #0000ff;">if</span> (PropertyChanged != <span style="color: #0000ff;">null</span>)<br />                {<br />                    PropertyChanged(<span style="color: #0000ff;">this</span>, <span style="color: #0000ff;">new</span> PropertyChangedEventArgs(<span style="color: #800000;">"</span><span style="color: #800000;">status</span><span style="color: #800000;">"</span>));<br />                }<br />            }<br />        }<br /><br />        <span style="color: #0000ff;">private</span> TrafficStatus status;<br />    }<br /><br />    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> ColorConverter : IValueConverter<br />    {<br />        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">object</span> Convert(<span style="color: #0000ff;">object</span> value, Type targetType, <span style="color: #0000ff;">object</span> parameter, CultureInfo culture)<br />        {<br />            TrafficStatus status = (TrafficStatus)value;<br />            SolidColorBrush brush = <span style="color: #0000ff;">new</span> SolidColorBrush(Colors.Red);<br />            <span style="color: #0000ff;">switch</span> (status)<br />            {<br />                <span style="color: #0000ff;">case</span> TrafficStatus.Stop:<br />                    <span style="color: #0000ff;">break</span>;<br />                <span style="color: #0000ff;">case</span> TrafficStatus.Ready:<br />                    brush = <span style="color: #0000ff;">new</span> SolidColorBrush(Colors.Orange);<br />                    <span style="color: #0000ff;">break</span>;<br />                <span style="color: #0000ff;">case</span> TrafficStatus.Go:<br />                    brush = <span style="color: #0000ff;">new</span> SolidColorBrush(Colors.Green);<br />                    <span style="color: #0000ff;">break</span>;<br />                <span style="color: #0000ff;">default</span>:<br />                    <span style="color: #0000ff;">break</span>;<br />            }<br />            <span style="color: #0000ff;">return</span> brush;<br />        }<br /><br />        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">object</span> ConvertBack(<span style="color: #0000ff;">object</span> value, Type targetType, <span style="color: #0000ff;">object</span> parameter, CultureInfo culture)<br />        {<br />            <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">null</span>;<br />        }<br />    }</pre>
</div>
<pre><br /><br /></pre>
</div>
<div class="cnblogs_code">
<pre>        <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> UserControl_Loaded(<span style="color: #0000ff;">object</span> sender, RoutedEventArgs e)<br />        {<br />            TrafficLight traffic = <span style="color: #0000ff;">new</span> TrafficLight()<br />            {<br />                Status = TrafficStatus.Stop<br />            };<br />            <span style="color: #0000ff;">this</span>.DataContext = traffic;<br />        }</pre>
</div>
<p><a title="Silverlight数据绑定转换.rar" href="http://www.cnblogs.com/wpf123/admin/fiels.cnblogs.com/wpf123/Silverlight数据绑定转换.rar">示例下载</a></p><img src="aggbug/2347267.html?type=0" width="1" height="1" alt=""/><p>作者: <a href="" target="_blank">WPF之家</a> 发表于 2012-02-12 00:19 <a href="http://www.cnblogs.com/wpf123/archive/2012/02/12/2347267.html" target="_blank">原文链接</a></p><p>评论: 0　<a href="http://www.cnblogs.com/wpf123/archive/2012/02/12/2347267.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/wpf123/archive/2012/02/12/2347267.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/130839/" target="_blank">初创企业能从Linux学习些什么</a><span style="color:gray">(2012-02-11 23:19)</span><br/>· <a href="http://news.cnblogs.com/n/130838/" target="_blank">Facebook单帖回复数超百万创吉尼斯世界纪录</a><span style="color:gray">(2012-02-11 23:14)</span><br/>· <a href="http://news.cnblogs.com/n/130837/" target="_blank">春节后礼品回收iPhone成新宠燕窝被冷落</a><span style="color:gray">(2012-02-11 20:50)</span><br/>· <a href="http://news.cnblogs.com/n/130836/" target="_blank">分析称苹果近1000亿现金储备最佳用途是派息</a><span style="color:gray">(2012-02-11 20:41)</span><br/>· <a href="http://news.cnblogs.com/n/130835/" target="_blank">扎克伯格11件蠢事：曾同意将Facebook卖给雅虎</a><span style="color:gray">(2012-02-11 20:37)</span><br/></p><p>编辑推荐：<a href="http://kb.cnblogs.com/page/130672/" target="_blank">高级编程语言的发展历程</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">我的园子</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://q.cnblogs.com/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Technical Debt Quadrant 技术债象限</title><link>http://www.cnblogs.com/bangbang/archive/2012/02/12/2347274.html</link><dc:creator>蚂蚁蚂蚁</dc:creator><author>蚂蚁蚂蚁</author><pubDate>Sat, 11 Feb 2012 16:19:00 GMT</pubDate><guid>http://www.cnblogs.com/bangbang/archive/2012/02/12/2347274.html</guid><description><![CDATA[<p>14 October 2009 &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Martin Fowler<br /><br />There's been a few posts over the last couple of months about TechnicalDebt that's raised the question of what kinds of design flaws should or shouldn't be classified as Technical Debt.<br />前几个月的一些关于技术债的帖子引出了这样一个问题，什么样的设计缺陷应该或者不应该归为技术债。<br />A good example of this is Uncle Bob's post saying a mess is not a debt. His argument is that messy code, produced by people who are ignorant of good design practices, shouldn't be a debt. Technical Debt should be reserved for cases when people have made a considered decision to adopt a design strategy that isn't sustainable in the longer term, but yields a short term benefit, such as making a release. The point is that the debt yields value sooner, but needs to be paid off as soon as possible.<br />一个很好的例子是Bob大叔的这篇&#8220;a mess is not a debt&#8221;的帖子。他的论调是那些对良好设计实践无知的人编写的腐坏的代码不应该是技术债。技术债应当是为了用于这样的情况的：人们为了一个获得一个短期的收益，如一次发布，经过慎重考虑而采取的不适用于长期存在的一个设计策略。重点是债务快速产生了价值，但是需要尽快偿还掉。<br />To my mind, the question of whether a design flaw is or isn't debt is the wrong question. Technical Debt is a metaphor, so the real question is whether or not the debt metaphor is helpful about thinking about how to deal with design problems, and how to communicate that thinking. A particular benefit of the debt metaphor is that it's very handy for communicating to non-technical people.<br />在我看来，一个设计缺陷是不是一个技术债是一个错误的议题。技术债是一个隐喻，因此真正的议题是技术债隐喻是否对思考如何处理设计缺陷和如何交流思想有帮助。技术债隐喻的一个特有的好处是非常方便与非技术人员沟通。<br />I think that the debt metaphor works well in both cases - the difference is in nature of the debt. A mess is a reckless debt which results in crippling interest payments or a long period of paying down the principal. We have a few projects where we've taken over a code base with a high debt and found the metaphor very useful in discussing with client management how to deal with it.<br />我认为技术债隐喻在两种情况下很好用-----不同点在于债务的本质。腐坏的代码是一种轻率的债务，会导致偿还非常沉重的利息或者花很长的时间来偿还本金。我们有那么几个项目代码库中存在非常高的债务，我们发现在与客户管理人员讨论如何去处理时，技术债这个隐喻非常有用。<br />The debt metaphor reminds us about the choices we can make with design flaws. The prudent debt to reach a release may not be worth paying down if the interest payments are sufficiently small - such as if it were in a rarely touched part of the code-base.<br />技术债隐喻帮我们想起处理设计缺陷的方案。为了一个发布而谨慎引入的技术债如果需支付的利息足够的小可能就不需要去偿还它-例如如果是位于代码库中极少碰到的一块。<br />So the useful distinction isn't between debt or non-debt, but between prudent and reckless debt.<br />因此有用的不是区分债不债的，而是区分草率的和谨慎的技术债。<br />There's another interesting distinction in the example I just outlined. Not just is there a difference between prudent and reckless debt, there's also a difference between deliberate and inadvertent debt. The prudent debt example is deliberate because the team knows they are taking on a debt, and thus puts some thought as to whether the payoff for an earlier release is greater than the costs of paying it off. A team ignorant of design practices is taking on its reckless debt without even realizing how much hock it's getting into.<br />在我刚概述的例子中还有一个有意思的区分。不仅仅是要区分草率的和谨慎的技术债，而且要区分有意的和无意的技术债。谨慎的技术债是有意为之的，因为团队知道他们正在引入一个技术债，因此会去想是否一个更早的发布的收益会大于偿还它带来的成本。一个无视设计实践的团队会引入草率的技术债，甚至意识不到将会押上什么样的家当。<br />Reckless debt may not be inadvertent. A team may know about good design practices, even be capable of practicing them, but decide to go "quick and dirty" because they think they can't afford the time required to write clean code. I agree with Uncle Bob that this is usually a reckless debt, because people underestimate where the DesignPayoffLine is. The whole point of good design and clean code is to make you go faster - if it didn't people like Uncle Bob, Kent Beck, and Ward Cunningham wouldn't be spending time talking about it.<br />草率的技术债可能不是无意造成的。一个团队也许知道良好的设计实践，甚至有能力去实践它们，但是却决定&#8220;快而烂&#8221;的干，因为她们支付不起编写整洁的代码所需要花费的时间。草率的技术债通常是因为人们对设计偿还期限的估计不足，在这点上我同意Bob大叔。良好设计和整洁代码的全部要点是让你走的更快。如果不是这样，像Bob大叔，Kent Beck, Ward Cunningham这些人就不会花时间去讨论它了。<br />Dividing debt into reckless/prudent and deliberate/inadvertent implies a quadrant, and I've only discussed three cells. So is there such a thing as prudent-inadvertent debt? Although such a thing sounds odd, I believe that it is - and it's not just common but inevitable for teams that are excellent designers.<br />把技术债分为草率的/谨慎的和有意的/无意的隐含了象限的概念，我前面仅讨论了3个。那么有没有谨慎-无意的技术债呢？虽然听上去有点怪，我相信是有的-不那么常见但对于卓越设计者的团队是不可避免的。<br />I was chatting with a colleague recently about a project he'd just rolled off from. The project that delivered valuable software, the client was happy, and the code was clean. But he wasn't happy with the code. He felt the team had done a good job, but now they realize what the design ought to have been.<br />我最近和一个同时聊起他刚离开的一个项目。项目交付了有价值的软件，客户高兴，代码整洁。但他对代码不满意。他感觉团队干得不错，但是他们刚意识到应该怎样去设计它。<br />I hear this all the time from the best developers. The point is that while you're programming, you are learning. It's often the case that it can take a year of programming on a project before you understand what the best design approach should have been. Perhaps one should plan projects to spend a year building a system that you throw away and rebuild, as Fred Brooks suggested, but that's a tricky plan to sell. Instead what you find is that the moment you realize what the design should have been, you also realize that you have an inadvertent debt. This is the kind of debt that Ward talked about in his video.<br />我常常从最优秀的开发人员那听到这个。重点是当你在编程序，你在学习。情况往往是在你理解最好的设计方案应该是什么时，你已经在项目上编了1年的代码。也许人们应该这样规划项目，花一年的时间搭建一个系统后扔掉燃火重新搭建，就像Fred Brooks建议的那样，但是这个棘手的方案卖不出去。在你发现在你意识到设计应该是怎样时，你也意识到了你有了一个无意的技术债。这就是Ward在他的视频中提到的。<br />The decision of paying the interest versus paying down the principal still applies, so the metaphor is still helpful for this case. However a problem with using the debt metaphor for this is that I can't conceive of a parallel with taking on a prudent-inadvertent financial debt. As a result I would think it would be difficult to explain to managers why this debt appeared. My view is this kind of debt is inevitable and thus should be expected. Even the best teams will have debt to deal with as a project goes on - even more reason not to recklessly overload it with crummy code.<br />在决定是支付利息还是支付本金时，隐喻对这种情况仍是非常有帮助的。然而技术债隐喻用于这种情况的一个问题是，我不能构思一个谨慎的-无意的金融债务的类似的情况。结果是，我认为很难向管理者解释为什么会产生这种债务。我的观点是这种债务是不可避免的，因此应该能料到。即使最好的团队随着项目进行也会有债务需要处理-即使足够理智地不去草率的堆叠糟糕的代码。<br /><img src="data:image/png;base64,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" alt="" /><img src="aggbug/2347274.html?type=0" width="1" height="1" alt=""/><p>作者: <a href="" target="_blank">蚂蚁蚂蚁</a> 发表于 2012-02-12 00:19 <a href="http://www.cnblogs.com/bangbang/archive/2012/02/12/2347274.html" target="_blank">原文链接</a></p><p>评论: 0　<a href="http://www.cnblogs.com/bangbang/archive/2012/02/12/2347274.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/bangbang/archive/2012/02/12/2347274.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/130839/" target="_blank">初创企业能从Linux学习些什么</a><span style="color:gray">(2012-02-11 23:19)</span><br/>· <a href="http://news.cnblogs.com/n/130838/" target="_blank">Facebook单帖回复数超百万创吉尼斯世界纪录</a><span style="color:gray">(2012-02-11 23:14)</span><br/>· <a href="http://news.cnblogs.com/n/130837/" target="_blank">春节后礼品回收iPhone成新宠燕窝被冷落</a><span style="color:gray">(2012-02-11 20:50)</span><br/>· <a href="http://news.cnblogs.com/n/130836/" target="_blank">分析称苹果近1000亿现金储备最佳用途是派息</a><span style="color:gray">(2012-02-11 20:41)</span><br/>· <a href="http://news.cnblogs.com/n/130835/" target="_blank">扎克伯格11件蠢事：曾同意将Facebook卖给雅虎</a><span style="color:gray">(2012-02-11 20:37)</span><br/></p><p>编辑推荐：<a href="http://kb.cnblogs.com/page/130672/" target="_blank">高级编程语言的发展历程</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">我的园子</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://q.cnblogs.com/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>正则之零宽断言</title><link>http://www.cnblogs.com/agostop/archive/2012/02/12/2347272.html</link><dc:creator>沉默爆破手</dc:creator><author>沉默爆破手</author><pubDate>Sat, 11 Feb 2012 16:15:00 GMT</pubDate><guid>http://www.cnblogs.com/agostop/archive/2012/02/12/2347272.html</guid><description><![CDATA[<p><p><span>零宽断言的意思是（匹配宽度为零，满足一定的条件/断言） 我也不知道这个词语是那个王八蛋发明的，简直是太拗口了。&nbsp;</span><br /><br /><span>零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西，也就是说它们像\b,^,$那样用于指定一个位置，这个位置应该满足一定的条件(即断言)，因此它们也被称为零宽断言。&nbsp;</span><br /><br /><span>断言用来声明一个应该为真的事实。正则表达式中只有当断言为真时才会继续进行匹配。&nbsp;</span><br /><br /><span>其中零宽断言又分四种&nbsp;</span><br /><br /><span>先行断言&nbsp;&nbsp; 也叫零宽度正预测先行断言(?=表达式)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示匹配表达式前面的位置&nbsp;</span><br /><br /><span>例如 [a-z]*(?=ing) 可以匹配cooking singing 中的cook与sing&nbsp;</span><br /><br /><span>注意：先行断言的执行步骤是这样的先从要匹配的字符串中的最右端找到第一个ing(也就是先行断言中的表达式)然后 再匹配其前面的表达式，若无法匹配则继续查找第二个ing 再匹配第二个 ing前面的字符串，若能匹配 则匹配&nbsp;</span><br /><br /><span>例如：.*(?=ing) 可以匹配cooking singing 中的cooking sing 而不是 cook&nbsp;</span><br /><br /><span>后发断言&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 也叫零宽度正回顾后发断言&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (?&lt;=表达式)&nbsp;&nbsp; 表示匹配表达式后面的位置&nbsp;</span><br /><br /><span>例如(?&lt;=abc).* 可以匹配abcdefg中的defg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br /><br /><span>注意：后发断言跟先行断言恰恰相反 它的执行步骤是这样的：先从要匹配的字符串中的最左端找到第一个abc(也就是先行断言中的表达式)然后 再匹配其后面的表达式，若无法匹配则继续查找第二个abc 再匹配第二个abc后面的字符串，若能匹配 则匹配&nbsp;</span><br /><br /><span>例如(?&lt;=abc).* 可以匹配abcdefgabc中的defgabc 而不是abcdefg&nbsp;</span><br /><br /><span>负向零宽断言&nbsp;</span><br /><br /><span>负向零宽断言 (?!表达式) 也是匹配一个零宽度的位置，不过这个位置的&ldquo;断言&rdquo;取表达式的反值，例如 (?!表达式) 表示 表达式 前面的位置，如果 表达式 不成立 ，匹配这个位置；如果 表达式 成立，则不匹配：同样，负向零宽断言也有&ldquo;先行&rdquo;和&ldquo;后发&rdquo;两种，负向零宽后发断言为 (?&lt;!表达式)&nbsp;</span><br /><br /><span>负向零宽后发断言(?&lt;!表达式)&nbsp;</span><br /><br /><span>负向零宽先行断言 (?!表达式)&nbsp;</span><br /><br /><span>负向零宽断言要注意的跟正向的一样</span></p><img src="aggbug/2347272.html?type=0" width="1" height="1" alt=""/><p>作者: <a href="" target="_blank">沉默爆破手</a> 发表于 2012-02-12 00:15 <a href="http://www.cnblogs.com/agostop/archive/2012/02/12/2347272.html" target="_blank">原文链接</a></p><p>评论: 0　<a href="http://www.cnblogs.com/agostop/archive/2012/02/12/2347272.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/agostop/archive/2012/02/12/2347272.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/130839/" target="_blank">初创企业能从Linux学习些什么</a><span style="color:gray">(2012-02-11 23:19)</span><br/>· <a href="http://news.cnblogs.com/n/130838/" target="_blank">Facebook单帖回复数超百万创吉尼斯世界纪录</a><span style="color:gray">(2012-02-11 23:14)</span><br/>· <a href="http://news.cnblogs.com/n/130837/" target="_blank">春节后礼品回收iPhone成新宠燕窝被冷落</a><span style="color:gray">(2012-02-11 20:50)</span><br/>· <a href="http://news.cnblogs.com/n/130836/" target="_blank">分析称苹果近1000亿现金储备最佳用途是派息</a><span style="color:gray">(2012-02-11 20:41)</span><br/>· <a href="http://news.cnblogs.com/n/130835/" target="_blank">扎克伯格11件蠢事：曾同意将Facebook卖给雅虎</a><span style="color:gray">(2012-02-11 20:37)</span><br/></p><p>编辑推荐：<a href="http://kb.cnblogs.com/page/130672/" target="_blank">高级编程语言的发展历程</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">我的园子</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://q.cnblogs.com/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>北理计算机复试题——2006年</title><link>http://www.cnblogs.com/Zidane/archive/2012/02/12/2347269.html</link><dc:creator>Zidane&amp;#174;</dc:creator><author>Zidane&amp;#174;</author><pubDate>Sat, 11 Feb 2012 16:08:00 GMT</pubDate><guid>http://www.cnblogs.com/Zidane/archive/2012/02/12/2347269.html</guid><description><![CDATA[<p><div class="cnblogs_code">
<pre><span style="color: #008080;">  1</span> #include &lt;iostream&gt;<br /><span style="color: #008080;">  2</span> #include &lt;cmath&gt;<br /><span style="color: #008080;">  3</span> <span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std;<br /><span style="color: #008080;">  4</span> <br /><span style="color: #008080;">  5</span> <span style="color: #008000;">//</span><span style="color: #008000;">1.写一个程序判断字符串中数字的位置（不限制使用面向对象编程）<br /></span><span style="color: #008080;">  6</span> <span style="color: #008000;">//</span><span style="color: #008000;">例如： 输入a3b4c5<br /></span><span style="color: #008080;">  7</span> <span style="color: #008000;">//</span><span style="color: #008000;">输出2 4 6</span><span style="color: #008000;"><br /></span><span style="color: #008080;">  8</span> <span style="color: #0000ff;">void</span> a2006_1()<br /><span style="color: #008080;">  9</span> {<br /><span style="color: #008080;"> 10</span>     <span style="color: #0000ff;">char</span> str [<span style="color: #800080;">21</span>];<br /><span style="color: #008080;"> 11</span>     cout &lt;&lt; <span style="color: #800000;">"</span><span style="color: #800000;">Please input a string(&lt;20): </span><span style="color: #800000;">"</span>;<br /><span style="color: #008080;"> 12</span>     cin &gt;&gt; str;<br /><span style="color: #008080;"> 13</span>     <span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = <span style="color: #800080;">0</span>; i &lt;= <span style="color: #800080;">20</span>; i++)<br /><span style="color: #008080;"> 14</span>     {<br /><span style="color: #008080;"> 15</span>         <span style="color: #0000ff;">if</span> (str[i] == <span style="color: #800080;">0</span>)<br /><span style="color: #008080;"> 16</span>         {<br /><span style="color: #008080;"> 17</span>             <span style="color: #0000ff;">break</span>;<br /><span style="color: #008080;"> 18</span>         }<br /><span style="color: #008080;"> 19</span>         <span style="color: #0000ff;">if</span> (str[i] &gt;= <span style="color: #800080;">48</span> &amp;&amp; str[i] &lt;=<span style="color: #800080;">57</span>)<br /><span style="color: #008080;"> 20</span>         {<br /><span style="color: #008080;"> 21</span>             cout &lt;&lt; i + <span style="color: #800080;">1</span> &lt;&lt; <span style="color: #800000;">"</span> <span style="color: #800000;">"</span>;<br /><span style="color: #008080;"> 22</span>         }<br /><span style="color: #008080;"> 23</span> <br /><span style="color: #008080;"> 24</span>     }<br /><span style="color: #008080;"> 25</span>     cout &lt;&lt; endl;<br /><span style="color: #008080;"> 26</span> }<br /><span style="color: #008080;"> 27</span> <br /><span style="color: #008080;"> 28</span> <span style="color: #008000;">//</span><span style="color: #008000;">2.写一个类，能接受int 型的变量，接收变量后能存储原变量（譬如12345）和其反向变量<br /></span><span style="color: #008080;"> 29</span> <span style="color: #008000;">//</span><span style="color: #008000;">(54321)，最多处理数量为10 个，当输入达到10 个或者输入变量为0 的时候停止。并且在<br /></span><span style="color: #008080;"> 30</span> <span style="color: #008000;">//</span><span style="color: #008000;">类销毁前输出存储的所有变量。<br /></span><span style="color: #008080;"> 31</span> <span style="color: #008000;">//</span><span style="color: #008000;">例如： 输入:12345,2234,0<br /></span><span style="color: #008080;"> 32</span> <span style="color: #008000;">//</span><span style="color: #008000;">输出:12345 54321<br /></span><span style="color: #008080;"> 33</span> <span style="color: #008000;">//</span><span style="color: #008000;">2234 4322</span><span style="color: #008000;"><br /></span><span style="color: #008080;"> 34</span> <span style="color: #0000ff;">class</span> Integer<br /><span style="color: #008080;"> 35</span> {<br /><span style="color: #008080;"> 36</span> <span style="color: #0000ff;">private</span>:<br /><span style="color: #008080;"> 37</span>     <span style="color: #0000ff;">int</span> INTTEGER [<span style="color: #800080;">10</span>];<br /><span style="color: #008080;"> 38</span>     <span style="color: #0000ff;">int</span> n; <span style="color: #008000;">//</span><span style="color: #008000;">输入数据个数</span><span style="color: #008000;"><br /></span><span style="color: #008080;"> 39</span> <span style="color: #0000ff;">public</span>:<br /><span style="color: #008080;"> 40</span>     Integer()<br /><span style="color: #008080;"> 41</span>     {<br /><span style="color: #008080;"> 42</span>         n = <span style="color: #800080;">0</span>;<br /><span style="color: #008080;"> 43</span>         Init();<br /><span style="color: #008080;"> 44</span>     }<br /><span style="color: #008080;"> 45</span>     <span style="color: #0000ff;">void</span> Init()<br /><span style="color: #008080;"> 46</span>     {<br /><span style="color: #008080;"> 47</span>         <span style="color: #0000ff;">int</span> temp;<br /><span style="color: #008080;"> 48</span>         cout &lt;&lt; <span style="color: #800000;">"</span><span style="color: #800000;">Please input integers(&lt;5): (End with 0)</span><span style="color: #800000;">"</span> &lt;&lt; endl;<br /><span style="color: #008080;"> 49</span>         <span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = <span style="color: #800080;">0</span>; i &lt; <span style="color: #800080;">5</span>; i++)<br /><span style="color: #008080;"> 50</span>         {<br /><span style="color: #008080;"> 51</span>             cin &gt;&gt; temp;<br /><span style="color: #008080;"> 52</span>             <span style="color: #0000ff;">if</span> (temp == <span style="color: #800080;">0</span>)<br /><span style="color: #008080;"> 53</span>             {<br /><span style="color: #008080;"> 54</span>                 <span style="color: #0000ff;">break</span>;<br /><span style="color: #008080;"> 55</span>             }<br /><span style="color: #008080;"> 56</span>             <span style="color: #0000ff;">else</span><br /><span style="color: #008080;"> 57</span>             {<br /><span style="color: #008080;"> 58</span>                 INTTEGER[i] = temp;<br /><span style="color: #008080;"> 59</span>                 n++;<br /><span style="color: #008080;"> 60</span>             }<br /><span style="color: #008080;"> 61</span>         }<br /><span style="color: #008080;"> 62</span>         ReverseInteger();<br /><span style="color: #008080;"> 63</span>     }<br /><span style="color: #008080;"> 64</span>     <span style="color: #0000ff;">int</span> Reverse(<span style="color: #0000ff;">int</span> num)<br /><span style="color: #008080;"> 65</span>     {<br /><span style="color: #008080;"> 66</span>         <span style="color: #0000ff;">int</span> t;<br /><span style="color: #008080;"> 67</span>         <span style="color: #0000ff;">char</span> temp[<span style="color: #800080;">20</span>];<br /><span style="color: #008080;"> 68</span>         <span style="color: #0000ff;">int</span> j = <span style="color: #800080;">0</span>;<br /><span style="color: #008080;"> 69</span>         t = num;<br /><span style="color: #008080;"> 70</span>         <span style="color: #0000ff;">while</span> (t)<br /><span style="color: #008080;"> 71</span>         {<br /><span style="color: #008080;"> 72</span>             temp[j] = t % <span style="color: #800080;">10</span> + <span style="color: #800080;">48</span>;<br /><span style="color: #008080;"> 73</span>             t = (t - t % <span style="color: #800080;">10</span>) / <span style="color: #800080;">10</span>;<br /><span style="color: #008080;"> 74</span>             j++;<br /><span style="color: #008080;"> 75</span>         }<br /><span style="color: #008080;"> 76</span>         <span style="color: #0000ff;">return</span> atoi(temp);<br /><span style="color: #008080;"> 77</span>     }<br /><span style="color: #008080;"> 78</span>     <span style="color: #0000ff;">void</span> ReverseInteger()<br /><span style="color: #008080;"> 79</span>     {    <br /><span style="color: #008080;"> 80</span>         <span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = n; i &lt; <span style="color: #800080;">2</span> * n; i++)<br /><span style="color: #008080;"> 81</span>         {<br /><span style="color: #008080;"> 82</span>             <br /><span style="color: #008080;"> 83</span>             INTTEGER[i] = Reverse(INTTEGER[i - n]);<br /><span style="color: #008080;"> 84</span>         }<br /><span style="color: #008080;"> 85</span>     }<br /><span style="color: #008080;"> 86</span>     <span style="color: #0000ff;">void</span> Display()<br /><span style="color: #008080;"> 87</span>     {<br /><span style="color: #008080;"> 88</span>         <span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = <span style="color: #800080;">0</span>; i &lt; <span style="color: #800080;">2</span> * n; i++)<br /><span style="color: #008080;"> 89</span>         {<br /><span style="color: #008080;"> 90</span>             cout &lt;&lt; INTTEGER[i] &lt;&lt; <span style="color: #800000;">"</span> <span style="color: #800000;">"</span>;<br /><span style="color: #008080;"> 91</span>         }<br /><span style="color: #008080;"> 92</span>         cout &lt;&lt; endl;<br /><span style="color: #008080;"> 93</span>     }<br /><span style="color: #008080;"> 94</span> };<br /><span style="color: #008080;"> 95</span> <span style="color: #0000ff;">void</span> a2006_2()<br /><span style="color: #008080;"> 96</span> {<br /><span style="color: #008080;"> 97</span>     Integer a = Integer();<br /><span style="color: #008080;"> 98</span>     a.Display();<br /><span style="color: #008080;"> 99</span> }<br /><span style="color: #008080;">100</span> <br /><span style="color: #008080;">101</span> <span style="color: #008000;">/*</span><span style="color: #008000;"><br /></span><span style="color: #008080;">102</span> <span style="color: #008000;">3.写一个CTriangle 类，要求可以接受CTriangle(y,x)形式的构造，创建在坐标系中的直角三<br /></span><span style="color: #008080;">103</span> <span style="color: #008000;">角形样子如下<br /></span><span style="color: #008080;">104</span> <span style="color: #008000;">A<br /></span><span style="color: #008080;">105</span> <span style="color: #008000;">|\<br /></span><span style="color: #008080;">106</span> <span style="color: #008000;">| \<br /></span><span style="color: #008080;">107</span> <span style="color: #008000;">|  \<br /></span><span style="color: #008080;">108</span> <span style="color: #008000;">|   \<br /></span><span style="color: #008080;">109</span> <span style="color: #008000;">B ---C<br /></span><span style="color: #008080;">110</span> <span style="color: #008000;">三点的坐标分别是A(0,y) B(0,0) C(x,0)<br /></span><span style="color: #008080;">111</span> <span style="color: #008000;">实现+运算，并且能够处理键盘连续输入若干个（少于十个）三角形，并且连加（相加时候<br /></span><span style="color: #008080;">112</span> <span style="color: #008000;">三角形边长长度相加，方向同第一个三角形）。输入0 后结束并输出最后得出的三角形的三<br /></span><span style="color: #008080;">113</span> <span style="color: #008000;">个坐标值。<br /></span><span style="color: #008080;">114</span> <span style="color: #008000;">例如：<br /></span><span style="color: #008080;">115</span> <span style="color: #008000;">输入： 1 2  -1 -5<br /></span><span style="color: #008080;">116</span> <span style="color: #008000;">输出: A(0,7),B(0,0),C(2,0)<br /></span><span style="color: #008080;">117</span> <span style="color: #008000;">*/</span><br /><span style="color: #008080;">118</span> <span style="color: #0000ff;">class</span> CTriangle<br /><span style="color: #008080;">119</span> {<br /><span style="color: #008080;">120</span> <span style="color: #0000ff;">private</span>:<br /><span style="color: #008080;">121</span>     <span style="color: #0000ff;">int</span> y, x;<br /><span style="color: #008080;">122</span> <span style="color: #0000ff;">public</span>:<br /><span style="color: #008080;">123</span>     CTriangle()<br /><span style="color: #008080;">124</span>     {<br /><span style="color: #008080;">125</span>         x = y = <span style="color: #800080;">0</span>;<br /><span style="color: #008080;">126</span>     }<br /><span style="color: #008080;">127</span>     CTriangle(<span style="color: #0000ff;">int</span> y, <span style="color: #0000ff;">int</span> x)<br /><span style="color: #008080;">128</span>     {<br /><span style="color: #008080;">129</span>         <span style="color: #0000ff;">this</span>-&gt;x = x;<br /><span style="color: #008080;">130</span>         <span style="color: #0000ff;">this</span>-&gt;y = y;<br /><span style="color: #008080;">131</span>     }<br /><span style="color: #008080;">132</span>     <span style="color: #0000ff;">int</span> GetX()<br /><span style="color: #008080;">133</span>     {<br /><span style="color: #008080;">134</span>         <span style="color: #0000ff;">return</span> x;<br /><span style="color: #008080;">135</span>     }<br /><span style="color: #008080;">136</span>     <span style="color: #0000ff;">int</span> GetY()<br /><span style="color: #008080;">137</span>     {<br /><span style="color: #008080;">138</span>         <span style="color: #0000ff;">return</span> y;<br /><span style="color: #008080;">139</span>     }<br /><span style="color: #008080;">140</span>     CTriangle <span style="color: #0000ff;">operator</span>+(CTriangle a)<br /><span style="color: #008080;">141</span>     {<br /><span style="color: #008080;">142</span>         <span style="color: #0000ff;">this</span>-&gt;x += fabs(a.GetX());<br /><span style="color: #008080;">143</span>         <span style="color: #0000ff;">this</span>-&gt;y += fabs(a.GetY());<br /><span style="color: #008080;">144</span>         <span style="color: #0000ff;">return</span> *<span style="color: #0000ff;">this</span>;<br /><span style="color: #008080;">145</span>     }<br /><span style="color: #008080;">146</span>     <span style="color: #0000ff;">void</span> Display()<br /><span style="color: #008080;">147</span>     {<br /><span style="color: #008080;">148</span>         cout &lt;&lt; <span style="color: #800000;">"</span><span style="color: #800000;">A(0,</span><span style="color: #800000;">"</span> &lt;&lt; y &lt;&lt; <span style="color: #800000;">"</span><span style="color: #800000;">), B(0,0), C(</span><span style="color: #800000;">"</span> &lt;&lt; x &lt;&lt; <span style="color: #800000;">"</span><span style="color: #800000;">,0)</span><span style="color: #800000;">"</span> &lt;&lt; endl;<br /><span style="color: #008080;">149</span>     }<br /><span style="color: #008080;">150</span> };<br /><span style="color: #008080;">151</span> <span style="color: #0000ff;">void</span> a2006_3()<br /><span style="color: #008080;">152</span> {<br /><span style="color: #008080;">153</span>     <span style="color: #0000ff;">int</span> y = <span style="color: #800080;">1</span>, x;<br /><span style="color: #008080;">154</span>     CTriangle a, temp;<br /><span style="color: #008080;">155</span>     <span style="color: #0000ff;">while</span> (y)<br /><span style="color: #008080;">156</span>     {<br /><span style="color: #008080;">157</span>         cout &lt;&lt; <span style="color: #800000;">"</span><span style="color: #800000;">Please input a coord: </span><span style="color: #800000;">"</span>;<br /><span style="color: #008080;">158</span>         cin &gt;&gt; x &gt;&gt; y;<br /><span style="color: #008080;">159</span>         <span style="color: #0000ff;">if</span> (x == <span style="color: #800080;">0</span> || y == <span style="color: #800080;">0</span>)<br /><span style="color: #008080;">160</span>         {<br /><span style="color: #008080;">161</span>             <span style="color: #0000ff;">break</span>;<br /><span style="color: #008080;">162</span>         }<br /><span style="color: #008080;">163</span>         temp = CTriangle(y, x);<br /><span style="color: #008080;">164</span>         a = a + temp;<br /><span style="color: #008080;">165</span>     }<br /><span style="color: #008080;">166</span>     a.Display();<br /><span style="color: #008080;">167</span> }<br /><span style="color: #008080;">168</span> <br /><span style="color: #008080;">169</span> <span style="color: #0000ff;">int</span> main()<br /><span style="color: #008080;">170</span> {<br /><span style="color: #008080;">171</span>     a2006_1();<br /><span style="color: #008080;">172</span>     a2006_2();<br /><span style="color: #008080;">173</span>     a2006_3();<br /><span style="color: #008080;">174</span>     <span style="color: #0000ff;">return</span> <span style="color: #800080;">0</span>;<br /><span style="color: #008080;">175</span> }</pre>
</div><img src="aggbug/2347269.html?type=0" width="1" height="1" alt=""/><p>作者: <a href="" target="_blank">Zidane&#174;</a> 发表于 2012-02-12 00:08 <a href="http://www.cnblogs.com/Zidane/archive/2012/02/12/2347269.html" target="_blank">原文链接</a></p><p>评论: 0　<a href="http://www.cnblogs.com/Zidane/archive/2012/02/12/2347269.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/Zidane/archive/2012/02/12/2347269.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/130839/" target="_blank">初创企业能从Linux学习些什么</a><span style="color:gray">(2012-02-11 23:19)</span><br/>· <a href="http://news.cnblogs.com/n/130838/" target="_blank">Facebook单帖回复数超百万创吉尼斯世界纪录</a><span style="color:gray">(2012-02-11 23:14)</span><br/>· <a href="http://news.cnblogs.com/n/130837/" target="_blank">春节后礼品回收iPhone成新宠燕窝被冷落</a><span style="color:gray">(2012-02-11 20:50)</span><br/>· <a href="http://news.cnblogs.com/n/130836/" target="_blank">分析称苹果近1000亿现金储备最佳用途是派息</a><span style="color:gray">(2012-02-11 20:41)</span><br/>· <a href="http://news.cnblogs.com/n/130835/" target="_blank">扎克伯格11件蠢事：曾同意将Facebook卖给雅虎</a><span style="color:gray">(2012-02-11 20:37)</span><br/></p><p>编辑推荐：<a href="http://kb.cnblogs.com/page/130672/" target="_blank">高级编程语言的发展历程</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">我的园子</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://q.cnblogs.com/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>源自c traps and falls的笔记回顾：怎么看指针定义式，指针转换说明符的速度书写办法</title><link>http://www.cnblogs.com/latyas/archive/2012/02/12/2347266.html</link><dc:creator>latyas</dc:creator><author>latyas</author><pubDate>Sat, 11 Feb 2012 16:03:00 GMT</pubDate><guid>http://www.cnblogs.com/latyas/archive/2012/02/12/2347266.html</guid><description><![CDATA[<p><p>方法来自C traps and falls。</p>
<p>是不是曾经对char (*ptr)[N]这样的定义很疑惑? 如果已经理解了的话，那么</p>
<p><strong>(*(void(*)())0)()&nbsp;</strong>又表示什么呢?</p>
<p>对于这一类的表达式，只有一条简单规则：按照使用的方式来声明。</p>
<p>任何C变量的声明部分都由两部分组成：类型 一组类似表达式的声明符(declarator)。</p>
<p>float g,h; 含义是 对g,h求值时，表达式g和h的类型为float，因为声明符和表达式相似，所以我们也可以这么写</p>
<p>float ((g));&nbsp;<strong>因为((g))是float，推知g也是float</strong></p>
<p>同理 float ff(); 表示ff()的&ldquo;<strong>求值结果</strong>&rdquo;是一个float</p>
<p>float *pf; 说明*pf的 求值结果 是一个浮点数。</p>
<p>再看<strong>&nbsp;float *g(),(*h)();</strong></p>
<p>说明*g() &nbsp; &nbsp;(*h)()的返回是一个float，*g()可以写成*(g()) （<strong>结合优先级</strong>）</p>
<p>此处说明g是一个函数，他的返回值是&ldquo;一个指向float的指针&rdquo;（这样才可以保证*(g())是一个float），同理h是一个函数指针，他的返回值是一个float。</p>
<p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;</p>
<p>一旦我们知道了如何声明一个给定的变量，那么该类型的&nbsp;<strong>类型转换符&nbsp;</strong>也就容易了。</p>
<p>只要把<strong>声明中的变量名和声明末尾的分号去掉，再将剩余的部分用一个括号封装起来。</strong></p>
<p><strong>E.X</strong>&nbsp;float (*h)(); &nbsp;表示h是一个<strong>&nbsp;指向返回值为浮点类型的函数的指针</strong></p>
<p>所以 &nbsp;(float (*)())是一个<strong>&ldquo;指向返回值为浮点类型的函数的指针&rdquo; 的 类型转换符&nbsp;</strong></p>
<p>现在我们来分析<strong>(*(void(*)())0)()</strong></p>
<p>我们先做个替换(*(P)0)()</p>
<p>可(*F)()是一个函数指针，那么可以看出(*(P)0)() 应该也是一个函数的指针</p>
<p>(*0)() 这样的语句在我们的脑子里是可以执行的，但是编译器不允许，因为0必须是函数指针，所以P应该是一个&ldquo;<strong>函数指针的转换符</strong>&rdquo;</p>
<p>再看到P : (void(*)())，这是一个什么呢？通过前面的铺垫，我们知道这是<strong>&nbsp;返回值为空的函数指针转换说明符</strong></p>
<p>所以这个<strong>(*(void(*)())0)()</strong>的谜底就是</p>
<p>一个<strong>指向内存地址为0</strong>的<strong>返回值为空</strong>的<strong>函数指针</strong>&nbsp;,是不是很神奇？</p>
<p>当然.这只是一个蹩脚的例子，用typedef很轻松的就可以</p>
<p>typedef void (*funcptr)(); //定义funcptr是一个返回值为void的函数指针 数据类型(令(*funcptr)()返回为void)</p>
<p>(*(funcptr)0)(); //先把0转换成一个"返回值为void的函数指针"，后面的你懂的。</p>
<p>&nbsp;</p>
<p>现在回到简单的</p>
<p>char array[10][5];</p>
<p>//初始化操作&hellip;&hellip;</p>
<p>看定义char (array[10])[5]; &nbsp;array[10]返回的一定是一个数组，这个数组在这种语境下可以等效为指针，而且(array[10])[5]这个表达式的返回值一定是char</p>
<p>所以很简单的可以得到 char (*ptr)[5]这种写法。 这就是所谓的二维数组的指针写法</p>
<p>记得当初不懂的时候还以为简单的 char **p呢， 这个的意思也好解释*的结合是从左向右，所以意思是char *(*p) 所以*p一定是一个指针，而且要指向char的指针 这样才能解引用出char类型</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>打字不容易呀～ &hellip;&hellip;</p><img src="aggbug/2347266.html?type=0" width="1" height="1" alt=""/><p>作者: <a href="" target="_blank">latyas</a> 发表于 2012-02-12 00:03 <a href="http://www.cnblogs.com/latyas/archive/2012/02/12/2347266.html" target="_blank">原文链接</a></p><p>评论: 0　<a href="http://www.cnblogs.com/latyas/archive/2012/02/12/2347266.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/latyas/archive/2012/02/12/2347266.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/130839/" target="_blank">初创企业能从Linux学习些什么</a><span style="color:gray">(2012-02-11 23:19)</span><br/>· <a href="http://news.cnblogs.com/n/130838/" target="_blank">Facebook单帖回复数超百万创吉尼斯世界纪录</a><span style="color:gray">(2012-02-11 23:14)</span><br/>· <a href="http://news.cnblogs.com/n/130837/" target="_blank">春节后礼品回收iPhone成新宠燕窝被冷落</a><span style="color:gray">(2012-02-11 20:50)</span><br/>· <a href="http://news.cnblogs.com/n/130836/" target="_blank">分析称苹果近1000亿现金储备最佳用途是派息</a><span style="color:gray">(2012-02-11 20:41)</span><br/>· <a href="http://news.cnblogs.com/n/130835/" target="_blank">扎克伯格11件蠢事：曾同意将Facebook卖给雅虎</a><span style="color:gray">(2012-02-11 20:37)</span><br/></p><p>编辑推荐：<a href="http://kb.cnblogs.com/page/130672/" target="_blank">高级编程语言的发展历程</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">我的园子</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://q.cnblogs.com/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>
