锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧美中文日韩在线,亚洲激情第一区,欧美日韩精品一区二区天天拍小说http://m.shnenglu.com/xlander/category/2270.htmlzh-cnTue, 24 Mar 2009 03:40:42 GMTTue, 24 Mar 2009 03:40:42 GMT60鍒╃敤浣嶆璁╂暟鎹殑鍚箟鏇存竻鏅?/title><link>http://m.shnenglu.com/xlander/archive/2007/12/12/38311.html</link><dc:creator>xlander</dc:creator><author>xlander</author><pubDate>Wed, 12 Dec 2007 06:47:00 GMT</pubDate><guid>http://m.shnenglu.com/xlander/archive/2007/12/12/38311.html</guid><wfw:comment>http://m.shnenglu.com/xlander/comments/38311.html</wfw:comment><comments>http://m.shnenglu.com/xlander/archive/2007/12/12/38311.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/xlander/comments/commentRss/38311.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/xlander/services/trackbacks/38311.html</trackback:ping><description><![CDATA[     鎽樿: 浣跨敤浣嶆鍙互綆鍖栧緢澶氫笢瑗?nbsp; <a href='http://m.shnenglu.com/xlander/archive/2007/12/12/38311.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/xlander/aggbug/38311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/xlander/" target="_blank">xlander</a> 2007-12-12 14:47 <a href="http://m.shnenglu.com/xlander/archive/2007/12/12/38311.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍏充簬濡備綍寤虹珛鎼滅儲寮曟搸鐨勫嚑綃囦粙緇嶆х殑鏂囩珷http://m.shnenglu.com/xlander/archive/2006/08/22/11557.htmlxlanderxlanderTue, 22 Aug 2006 02:35:00 GMThttp://m.shnenglu.com/xlander/archive/2006/08/22/11557.htmlhttp://m.shnenglu.com/xlander/comments/11557.htmlhttp://m.shnenglu.com/xlander/archive/2006/08/22/11557.html#Feedback0http://m.shnenglu.com/xlander/comments/commentRss/11557.htmlhttp://m.shnenglu.com/xlander/services/trackbacks/11557.html鍩轟簬JAVA鎶鏈殑鎼滅儲寮曟搸鐨勭爺絀朵笌瀹炵幇
http://blog.csdn.net/fasttalk/archive/2004/12/23/227178.aspx
浠嬬粛浜嗗熀浜庤嫳鐗圭綉鐨勬悳绱㈠紩鎿庣殑緋葷粺緇撴瀯錛岀劧鍚庝粠緗戠粶鏈哄櫒浜恒佺儲寮曞紩鎿庛乄eb鏈嶅姟鍣ㄤ笁涓柟闈㈣繘琛岃緇嗙殑璇存槑銆傚埄鐢↗ava寮婧愪唬鐮丩ucene銆乀omcat絳夊緩绔嬭嚜宸辯殑鎼滅儲寮曟搸銆佹槗浜庣悊瑙c?/div>
 
鎬庝箞浼氭槸lucene?
http://blog.csdn.net/accesine960/archive/2004/12/23/227134.aspx
榪欑瘒鏂囩珷鎻愬埌浜嗗綋鍓嶈兘鎼滅儲鍒扮殑浠嬬粛鎼滅儲寮曟搸鐨勬枃绔犲拰绔欑偣錛屼互鍙婄畝鐣ユ儏鍐點?/div>
 
鎼滅儲寮曟搸緇忛獙鎬葷粨
http://blog.csdn.net/xsc2001/archive/2006/04/03/649106.aspx
鏂囦腑璁茶堪浜嗚湗铔涖佸垏璇嶃佺儲寮曘佹煡璇㈠櫒絳夋ā鍧楃殑涓浜涙榪板拰緇嗚妭錛屽鎼滅儲寮曟搸涓殑鍒濆鑰呯殑鏈変竴瀹氬府鍔?/div>


xlander 2006-08-22 10:35 鍙戣〃璇勮
]]>Terrarium - 紼嬪簭鍛?涓婂笣http://m.shnenglu.com/xlander/archive/2006/08/22/11554.htmlxlanderxlanderTue, 22 Aug 2006 02:33:00 GMThttp://m.shnenglu.com/xlander/archive/2006/08/22/11554.htmlhttp://m.shnenglu.com/xlander/comments/11554.htmlhttp://m.shnenglu.com/xlander/archive/2006/08/22/11554.html#Feedback0http://m.shnenglu.com/xlander/comments/commentRss/11554.htmlhttp://m.shnenglu.com/xlander/services/trackbacks/11554.html    鏃╁湪2001騫村氨鏈変簡榪欎釜綆鍗曞嵈澶嶆潅鐨勬父鎴忥紝Terrarium錛屽嵆浣挎渶鏂扮殑鐗堟湰涔熸槸鍦ㄤ竴騫村墠鎺ㄥ嚭鐨勩傚彧鏄埌浜嗙幇鍦ㄥ凡緇忔病鏈夊灝戜漢鐜╀簡錛屽洜涓轟粠GOOGLE涓婂凡緇忔悳绱笉鍒板彲鐢ㄧ殑鏈嶅姟鍣ㄤ簡錛屽彧鑳芥槸鍦ㄨ嚜宸辯殑鏈嶅姟鍣ㄤ笂鎼炰釜璇曢獙錛屾劅鍙椾竴涓嬪仛涓婂笣鐨勬粙鍛籌紝涓嶈繃涔熷氨澶卞幓浜嗙敓鐗╁鏍鋒х殑鍒濊》銆?/div>
    Terrarium鏄井杞叕鍙稿紑鍙戠殑紺轟緥紼嬪簭錛屽畠鏄竴嬈懼悜杞歡寮鍙戜漢鍛樺叏闈㈠睍紺?NET妗嗘灦搴旂敤寮鍙戞妧鏈殑娓告垙銆傚湪Terrarium娓告垙涓紝寮鍙戜漢鍛樺彲浠ュ垱寤鴻崏椋熷姩鐗┿佽倝椋熷姩鐗╂垨妞嶇墿錛屽茍灝嗗畠浠斁鍒頒竴涓熀浜?#8220;閫傝呯敓瀛?#8221;妯″瀷鍜屽絳夌綉緇滅粨鏋勭殑鐢熸佺郴緇熶腑銆傛父鎴忔棦鎻愪緵浜嗕竴涓彲浠ユ祴璇曞紑鍙戜漢鍛樼殑杞歡寮鍙戜笌絳栫暐璁捐姘村鉤鐨勭珵浜夌幆澧冿紝涔熸彁渚涗簡涓涓繎涔庣湡瀹炵殑榪涘寲鐢熺墿瀛﹀拰浜哄伐鏅鴻兘妯″瀷錛屼互媯楠屽叿鏈変笉鍚岃涓哄拰灞炴х殑鐢熺墿鍦ㄧ敓瀛樻枟浜変腑鐨勯傚簲鑳藉姏銆?br>    鍦ㄥ垱寤虹敓鐗╂椂錛屽紑鍙戣呭彲浠ヨ嚜琛屽喅瀹氱敓鐗╃殑姣忎竴縐嶅熀鏈睘鎬э紙濡傜溂鐫涚殑棰滆壊銆佽繍鍔ㄩ熷害銆侀槻鍗兘鍔涖佹敾鍑昏兘鍔涚瓑錛夛紝琛屼負鏂瑰紡錛堝鎵鵑鐗┿佹椿鍔ㄥ拰榪涙敾鐨勭畻娉曠瓑錛変互鍙婄箒孌栬兘鍔涳紙姣忛殧澶氶暱鏃墮棿綣佹畺涓嬈★紝鎶婂摢浜涘熀鏈俊鎭仐浼犵粰鍚庝唬錛夈傚紑鍙戝ソ涓涓敓鐗╃殑鎵鏈変唬鐮佷箣鍚庯紝寮鍙戣呭皢浠g爜緙栬瘧鎴?NET紼嬪簭闆嗭紙Assembly錛屼互DLL鍔ㄦ侀摼鎺ュ簱鐨勬柟寮忓瓨鏀撅級銆傛湰鍦扮殑鐢熸佺郴緇熺墖鏂彲浠ヨ皟鍏ュ拰榪愯璇ョ▼搴忛泦錛屽茍鍦═errarium鎺у埗鍙頒笂鏄劇ず鍑鴻繖涓鐢熺墿銆?br>
    寮鍙戜竴涓敓鐗╃殑榪囩▼鍙兘寰堝鏄擄紝涔熷彲鑳藉厖婊℃寫鎴橈紝鍙兘寰堣交鏉撅紝涔熷彲鑳介渶瑕佸叏鍔涗互璧達紝鍏抽敭鏄綘鎯沖緱鍒頒粈涔堟牱鐨勭粨鏋溿?/div>
 
Terrarium鐨勫畼鏂圭綉绔?/div>
 
Terrarium鐨勪腑鏂囩畝浠?/div>
 
Terrarium涓嚑涓瘮杈冧紭縐鐨勭敓鐗╃殑浠g爜鐗囨柇


xlander 2006-08-22 10:33 鍙戣〃璇勮
]]>鏈夊叧緇嗚優鑷姩鏈虹殑綆鐣ヤ粙緇?/title><link>http://m.shnenglu.com/xlander/archive/2006/08/22/11553.html</link><dc:creator>xlander</dc:creator><author>xlander</author><pubDate>Tue, 22 Aug 2006 02:32:00 GMT</pubDate><guid>http://m.shnenglu.com/xlander/archive/2006/08/22/11553.html</guid><wfw:comment>http://m.shnenglu.com/xlander/comments/11553.html</wfw:comment><comments>http://m.shnenglu.com/xlander/archive/2006/08/22/11553.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/xlander/comments/commentRss/11553.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/xlander/services/trackbacks/11553.html</trackback:ping><description><![CDATA[<div> </div> <div>鍦℉iker鐨刡log涓婃壘鍒板嚑綃囦粙緇嶅厓鑳炶嚜鍔ㄦ満鐨勬枃绔狅紝鍙互綺楃暐鐨勪簡瑙d竴涓嬨?/div> <div><a >http://www.xjtublog.com/user1/1034/subject/6351.shtml</a> </div> <div> </div> <div>鍏冭優鑷姩鏈哄彲鐢ㄦ潵鐮旂┒寰堝涓鑸幇璞°傚叾涓寘鎷氫俊銆佷俊鎭紶閫?Communicahon)銆佽綆?(Compulation)銆佹瀯閫?(ConsTruction)銆佺敓闀?(Growth)銆佸鍒?(Reproductionj銆佺珵浜?Competition)涓庤繘鍖?Evolutio錛宂)絳?Smith A.,1969;Perrier錛孞.Y.,1996)銆傚悓鏃躲傚畠涓哄姩鍔涘緋葷粺鐞嗚涓湁鍏崇З搴?(Ordering)銆佺磰鍔?(Turbulence)銆佹販娌?(Chaos)銆侀潪瀵圭О(Symmetry-Breaking)銆佸垎褰?Fractality)絳夌郴緇熸暣浣撹涓轟笌澶嶆潅鐜拌薄鐨勭爺絀舵彁渚涗簡涓涓湁鏁堢殑妯″瀷宸ュ叿 (Vichhac銆侴錛?984; Bennett錛孋,1985)銆?br></div> <div> </div> <div>GOOGLE鎼滅儲鍒扮殑鍑犱釜鍏冭優鑷姩鏈虹殑搴旂敤錛?/div> <div> </div> <div><a >http://nlsc.ustc.edu.cn/</a> </div> <div>涓浗縐戞妧澶у闈炵嚎鎬х瀛︿腑蹇?/div> <div> </div> <div><a >http://lgisrs.nju.edu.cn/project.htm</a> </div> <div> <div>鍐滄潙鍩庡競鍖栫殑鍏冭優鑷姩鏈烘ā鍨嬬爺絀?/div> <div> </div> </div> <div><a >http://pandeng.dlut.edu.cn/NewsView.asp?id=154</a> </div> <div>浼犳煋鐥呯殑浜岀淮鍏冭優鑷姩鏈烘ā鍨?br>鍩轟簬鍏冭優鑷姩鏈哄拰Penna妯″瀷鐨勭敓鎬佺郴緇熸ā鎷熸ā鍨?/div> <div> </div> <div><a >http://www.zydl.net/Article_Show.asp?ArticleID=2914</a> </div> <div>閮藉競鍖哄煄甯傛墿灞曟ā鍨?/div> <div> </div> <div>鍛ㄦ垚铏庯紝縐戝鍑虹増紺俱婂湴鐞嗗厓鑳炶嚜鍔ㄦ満鐮旂┒銆嬩腑鏈夊熀浜庡厓鑳炶嚜鍔ㄦ満鐨勬灄鐏ā鍨?/div> <div> </div> <div><a >http://www.cnblogs.com/maweifeng/articles/255344.html</a> </div> <div>鍩轟簬MA鍜孋A鐨勪氦閫氱┖闂村喅絳栨ā鍨?/div> <div> </div> <div><a >http://www.ncgia.ucsb.edu/projects/gig/project_gig.htm</a> </div> <div>鍩庡競鎵╂暎妯″瀷錛堣嫳鏂囷級</div> <div> </div> <div><a >http://www.swarmagents.com/complex/models/caintro.htm</a> </div> <div>鍏冭優鑷姩鏈哄叏鏀葷暐</div> <div> </div> <div><a >http://gz.house.sina.com.cn/news/2005-11-26/1929689.html</a> </div> <div>榛庡錛氬厓鑳炶嚜鍔ㄦ満涓庡鍙兘浣撳湪鍩庡競瑙勫垝涓殑搴旂敤</div> <div class="hvzpftn" id="div_cppblog_ad_article"></div><img src ="http://m.shnenglu.com/xlander/aggbug/11553.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/xlander/" target="_blank">xlander</a> 2006-08-22 10:32 <a href="http://m.shnenglu.com/xlander/archive/2006/08/22/11553.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍏氦鎹箻鐨勫垵姝ユ濊?/title><link>http://m.shnenglu.com/xlander/archive/2006/07/21/10293.html</link><dc:creator>xlander</dc:creator><author>xlander</author><pubDate>Fri, 21 Jul 2006 02:13:00 GMT</pubDate><guid>http://m.shnenglu.com/xlander/archive/2006/07/21/10293.html</guid><wfw:comment>http://m.shnenglu.com/xlander/comments/10293.html</wfw:comment><comments>http://m.shnenglu.com/xlander/archive/2006/07/21/10293.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/xlander/comments/commentRss/10293.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/xlander/services/trackbacks/10293.html</trackback:ping><description><![CDATA[ <div>鎬濊礬錛?br />鐢ㄥ浘璁轟腑鐨勬渶鐭礬寰勬潵瑙e喅闂銆?/div> <div> </div> <div> </div> <div>鍥劇殑鍒涘緩錛?br />緇撶偣錛氬叕浜ょ珯鐐廣?br />杈癸細鍏氦璺嚎鍦ㄤ袱涓珯鐐逛箣闂寸殑琛屼嬌璺嚎銆?/div> <div> <br /> </div> <div>璺嚎鐨勬眰瑙o細<br />綆楁硶鍙互鍙傝冩渶鐭礬寰勭畻娉曘?br />浠ョ粡榪囩殑璺嚎鐨勮窛紱繪垨鏃墮棿浣滀負璇勪環鏍囧噯錛屼紭鍏堥夋嫨鍚屼竴鏉″叕浜ょ嚎璺殑涓嬩竴绔欑偣錛屽鏋滃彂鐢熸崲涔橈紝浠ユ崲涔樼殑嬈℃暟杈懼埌闄愬埗浣滀負灞閮ㄤ腑姝㈡潯浠訛紝浠ヤ究鎶涘純涓嶅繀瑕佺殑閬嶅巻榪囩▼銆?/div> <div class="hvzpftn" id="div_cppblog_ad_article"></div><img src ="http://m.shnenglu.com/xlander/aggbug/10293.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/xlander/" target="_blank">xlander</a> 2006-07-21 10:13 <a href="http://m.shnenglu.com/xlander/archive/2006/07/21/10293.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鐣岄潰緹庡寲鍦ㄨ蔣浠跺紑鍙戣繃紼嬩腑鐨勫畨鎺?/title><link>http://m.shnenglu.com/xlander/archive/2006/07/21/10292.html</link><dc:creator>xlander</dc:creator><author>xlander</author><pubDate>Fri, 21 Jul 2006 02:12:00 GMT</pubDate><guid>http://m.shnenglu.com/xlander/archive/2006/07/21/10292.html</guid><wfw:comment>http://m.shnenglu.com/xlander/comments/10292.html</wfw:comment><comments>http://m.shnenglu.com/xlander/archive/2006/07/21/10292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/xlander/comments/commentRss/10292.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/xlander/services/trackbacks/10292.html</trackback:ping><description><![CDATA[ <p>    浜烘満鐣岄潰鐨勯噸瑕佹ф槸鏃犲焊緗枒鐨勶紝緹庤銆佷漢鎬у寲鐨勭晫闈㈢粰浜哄甫鏉ョ殑鏄編鐨勪韓鍙楀拰宸ヤ綔鐨勪箰瓚c備絾榪欏茍涓嶆槸璇磋鎶婄晫闈㈠紑鍙戞斁鍦ㄤ笉鍙浛浠g殑閲嶈浣嶇疆銆?/p> <p>    鍦ㄨ蔣浠跺紑鍙戠殑鍒濇湡錛屼笉搴旇繃搴﹀叧娉ㄧ晫闈㈠紑鍙戯紝鑰屽簲灝嗕晶閲嶇偣鏀懼湪緋葷粺鍔熻兘銆佺郴緇熸祦紼嬬殑瀹炵幇涓娿傝繖鏍峰彲浠ュ揩閫熺殑瀹炵幇緋葷粺妯″瀷鐨勫疄鐜幫紝灝嗙郴緇熻皟璇曞敖閲忔棭鐨勬彁鍓嶏紝灝嗛偅浜涚敱鐣岄潰寮鍙戞墍甯︽潵鐨勫ぇ閲廈UG鎺у埗鍦ㄦā鍨嬫惌寤哄畬鎴愪箣鍚庯紝鍑忓皯鐣岄潰BUG瀵圭郴緇熸ā鍨嬬殑褰卞搷銆?/p> <div class="hvzpftn" id="div_cppblog_ad_article"></div><img src ="http://m.shnenglu.com/xlander/aggbug/10292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/xlander/" target="_blank">xlander</a> 2006-07-21 10:12 <a href="http://m.shnenglu.com/xlander/archive/2006/07/21/10292.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>杞歡涓簲瀵瑰叏閮ㄥ伐浣滃畬鎴愮殑鏃墮棿鍋氬嚭棰勬祴http://m.shnenglu.com/xlander/archive/2006/07/21/10291.htmlxlanderxlanderFri, 21 Jul 2006 02:11:00 GMThttp://m.shnenglu.com/xlander/archive/2006/07/21/10291.htmlhttp://m.shnenglu.com/xlander/comments/10291.htmlhttp://m.shnenglu.com/xlander/archive/2006/07/21/10291.html#Feedback0http://m.shnenglu.com/xlander/comments/commentRss/10291.htmlhttp://m.shnenglu.com/xlander/services/trackbacks/10291.html濡傛灉涓涓綆楄繃紼嬫瘮杈冭垂鏃訛紝闄や簡瑕佺粰鍑烘墍鏈夎繍綆楃殑宸ヤ綔閲忋佸綋鍓嶅凡緇忓畬鎴愮殑宸ヤ綔閲忥紝
榪樿瀵瑰叏閮ㄥ伐浣滃畬鎴愮殑鏃墮棿鍋氬嚭棰勬祴銆?/div>
濡傛灉宸ヤ綔鏄幇琛岀殑褰撶劧濂藉姙浜嗭紝濡傛灉鏄潪綰挎х殑錛屾瘮鏂硅鍐掓場鎺掑簭錛屽湪鎺掑簭鐨勫悗鏈燂紝宸ヤ綔閲忚秺鏉ヨ秺灝戙傛墍浠ワ紝榪欎釜棰勬祴錛岃繕瑕佷粠鍏ㄥ眬鐫鐪鹼紝緇撳悎綆楁硶鐨勭粨鏋勬墠琛屻?/div>


xlander 2006-07-21 10:11 鍙戣〃璇勮
]]>闆嗚綆辯爜鏀劇殑闂http://m.shnenglu.com/xlander/archive/2006/07/21/10290.htmlxlanderxlanderFri, 21 Jul 2006 02:09:00 GMThttp://m.shnenglu.com/xlander/archive/2006/07/21/10290.htmlhttp://m.shnenglu.com/xlander/comments/10290.htmlhttp://m.shnenglu.com/xlander/archive/2006/07/21/10290.html#Feedback0http://m.shnenglu.com/xlander/comments/commentRss/10290.htmlhttp://m.shnenglu.com/xlander/services/trackbacks/10290.html鍦ㄧ綉涓婄湅鍒扮殑棰樼洰錛屼竴鐩存病鏈夋濊礬錛岀暀璁般?/p>

灝嗘湁鍥涚瑙勬牸鍏?0涓皬綆卞瓙錛屾斁浜庝袱縐嶈鏍肩殑澶х瀛?鏈夋棤鏁頒釜)涓紝
瑕佸浣曟斁緗墠浼氫嬌澶х浣跨敤鏈灝戣屼笖鍒嗛厤鏈鍚堢悊,
闇鑰冭檻妯斁绔栨斁

灝忕瀛愭湁涓夌瑙勬牸:
5*3*2鏈?0涓
5*3*1 5涓?
10*3*2 15涓?銆
2*3*2 20涓

澶х瀛愭湁涓ょ瑙勬牸錛?br />10*10*6 銆
8*5*6



xlander 2006-07-21 10:09 鍙戣〃璇勮
]]>
緙栧啓楂樻晥鐨凜浠g爜http://m.shnenglu.com/xlander/archive/2006/07/21/10289.htmlxlanderxlanderFri, 21 Jul 2006 02:07:00 GMThttp://m.shnenglu.com/xlander/archive/2006/07/21/10289.htmlhttp://m.shnenglu.com/xlander/comments/10289.htmlhttp://m.shnenglu.com/xlander/archive/2006/07/21/10289.html#Feedback1http://m.shnenglu.com/xlander/comments/commentRss/10289.htmlhttp://m.shnenglu.com/xlander/services/trackbacks/10289.html緙栧啓楂樻晥鐨凜浠g爜

鍘熸枃鏍囬錛歐riting Efficient C and C Code Optimization
鍘熸枃鍦板潃錛?a >http://www.codeproject.com/cpp/C___Code_Optimization.asp
鍘熸枃浣滆咃細Koushik Ghosh
璇戞枃浣滆咃細zhigang

鍓嶈█
鍓嶆鏃墮棿錛屾垜寮鍙戜簡涓涓交閲忕駭鐨凧PEG搴擄紝鐢ㄦ潵鍦ㄦ煇縐嶇Щ鍔ㄨ澶囦笂涓嶅け鐪熷湴鏄劇ず鍥懼儚銆傛垜娉ㄦ剰鍒頒竴浜涙妧宸у彲浠ヤ嬌紼嬪簭榪愯鐨勬洿蹇傚湪榪欑瘒鏂囩珷閲岋紝鎴戞敹闆嗗拰鏁寸悊浜嗘墍鏈夌殑榪欎簺鏂規硶錛岀敤鏉ュ湪榪愯閫熷害鍜屽唴瀛樺崰鐢ㄦ柟闈㈠C浠g爜榪涜浼樺寲銆?br />灝界緙栧啓C浠g爜錛屽凡緇忔湁浜嗚澶氭寚瀵煎師鍒欏彲浠ュ弬鑰冿紝浣嗚繖騫朵笉琛ㄧず浣犲凡緇忓交搴曠殑浜嗚В浣犳鍦ㄤ嬌鐢ㄧ殑緙栬瘧鍣ㄥ拰CPU銆?br /> 緇忓父鐨勶紝涓轟簡浣夸唬鐮佽繍琛岀殑鏇村揩錛屼細瀵艱嚧浠g爜闀垮害鐨勫鍔狅紝鎵璋撲互絀洪棿鎹㈡椂闂達紝浣嗘槸浠g爜闀垮害鐨勫鍔犳湁涓縐嶈礋闈綔鐢ㄥ氨鏄嬌紼嬪簭鐨勫鏉傚害澧炲姞銆佸彲璇繪у噺寮便傚挨鍏舵槸褰撲綘鐨勭▼搴忔渶緇堣繍琛岀幆澧冩槸鎵嬫満銆丳DA涔嬬被鐨勫鍐呭瓨瑕佹眰姣旇緝鑻涘埢鐨勮澶囩殑鏃跺欙紝榪欏皢浼氭槸涓嶅彲鎺ュ彈鐨勩傛墍浠ワ紝鎴戜滑浼樺寲鐨勫畻鏃ㄥ氨鏄嬌紼嬪簭鍦ㄥ唴瀛樺崰鐢ㄥ拰榪愯閫熷害涓や釜鏂歸潰閮借寰楀埌浼樺寲銆?/p>

澹版槑
瀹為檯涓婏紝鍦ㄦ垜鐨勯偅涓」鐩腑錛屾垜浣跨敤浜咥RM鍏徃鐨勪竴綃囨枃绔犱腑鎻愬埌鐨勬妧宸э紝鍥犱負鎴戠殑紼嬪簭鏄熀浜嶢RM騫沖彴鐨勶紝浣犲彲浠ヤ粠榪欓噷http://www.arm.com/pdfs/DAI0034A_efficient_c.pdf鍙栧緱榪欑瘒鏂囩珷錛屾垜涔熶粠Internet涓婃敹闆嗕簡璁稿鍏跺畠鐨勬枃绔犮備絾騫朵笉鏄瘡綃囨枃绔犱腑鎻愬埌鐨勬墍鏈夋妧宸ч兘鏈夌敤錛屾墍浠ワ紝鍦ㄨ繖閲岋紝鎴戝彧鏀墮泦浜嗘湁鐢ㄤ笖鏈夋晥鐨勶紝榪樻湁錛屾垜淇敼浜嗗叾涓殑涓浜涙妧宸т嬌瀹冨嚑涔庨傜敤浜庢墍鏈夋儏鍐碉紝鑰屼笉浠呬粎鏄疉RM銆?br />鎴戞墍浣滅殑宸ヤ綔鍙槸灝嗗悇涓珯鐐圭殑鎶宸ф敹闆嗗埌涓璧鳳紝灝ゅ叾鏄垜鍦ㄤ笂闈㈡彁鍒扮殑閭d釜PDF鏂囦歡錛屾垜浠庢潵娌℃湁璇磋繃榪欎簺鎶宸т嬌鎴戣嚜宸辯殑鍙戞槑銆傚湪鏈枃鏈熬鐨勫弬鑰冩枃鐚儴鍒嗭紝鎴戠綏鍒椾簡鎵鏈夋妧宸х殑鏉ユ簮銆?/p>

鍝噷闇瑕佷紭鍖?br />娌℃湁榪欎竴鐐癸紝鎵鏈夌殑璁ㄨ閮芥棤浠庤皥璧楓傞鍏堜篃鏄渶閲嶈鐨勬槸瑕佹壘鍑哄摢閲岄渶瑕佷紭鍖栵紝紼嬪簭鐨勯偅涓閮ㄥ垎鎴栬呴偅涓ā鍧楄繍琛岄熷害鎱㈡垨鑰呬嬌鐢ㄥぇ閲忓唴瀛樸傜▼搴忕殑姣忎釜閮ㄥ垎閮借鍒嗗埆浼樺寲錛岃嚜鐒惰岀劧鐨勬暣涓▼搴忓張浼氬彉寰楄繍琛岀殑姣旇緝蹇簡銆?br />浼樺寲搴旇涓昏閽堝紼嬪簭涓渶緇忓父榪愯鐨勯儴鍒嗭紝灝ゅ叾鏄鍐呴儴寰幆鍙嶅璋冪敤鐨勫嚱鏁般?br /> 涓涓粡楠屼赴瀵岀殑紼嬪簭鍛樹細寰堝鏄撴壘鍑虹▼搴忎腑闇瑕佺潃閲嶄紭鍖栫殑閮ㄥ垎錛屽彟澶栵紝榪樻湁璁稿宸ュ叿鍙互鐢ㄦ潵紜畾榪欎簺閮ㄥ垎銆傛垜鏇劇粡鐢╒isual C++ 鐨処DE鍐呭緩鐨凱rofiler錛屽彟澶栦竴涓垜鐢ㄨ繃鐨勫伐鍏鋒槸Intel Vtune錛岃繖鏄竴涓潪甯稿ソ鐢ㄧ殑Profiler錛岄兘鍙互鐢ㄦ潵瀵繪壘紼嬪簭涓渶璐規椂鐨勫湴鏂廣備互鎴戠殑緇忛獙鏉ョ湅錛屽鑷寸▼搴忚繍琛岄熷害鎱㈠緱緗瓉紲擱鍙兘灝辨槸鏌愪釜鍐呴儴鎴栧祵濂楀驚鐜紝涔熷彲鑳芥槸瀵圭涓夋柟搴撳嚱鏁扮殑璋冪敤銆?/p>

鏁村瀷鏁?/ Integers
銆銆濡傛灉涓涓彉閲忕殑鍙栧艱寖鍥存槸闈炶礋鐨勶紝鎴戜滑搴旇浣跨敤unsigned int錛岃屼笉鏄痠nt銆備竴浜涘鐞嗗櫒鍦ㄥ鐞嗘棤絎﹀彿鏁村瀷鏁拌姣斿鐞嗙鍙鋒暣鍨嬫暟蹇緱澶氾紝榪欎篃鏄竴涓ソ鐨勪範鎯紝鏈夊埄浜庝唬鐮佺殑鑷垜鏂囨。鍖?self-documenting)銆?br />銆銆閭d箞錛屽湪涓涓皬寰幆錛坱ight loop錛変腑錛屽畾涔変竴涓暣鍨嬪彉閲忥紝鏈濂界被浼艱繖鏍鳳細
register unsigned int variable_name;
鐒惰岋紝鎴戜滑涓嶈兘淇濊瘉緙栬瘧鍣ㄤ細娉ㄦ剰鍒伴偅涓猺egister鍏抽敭瀛楋紝涔熸湁鍙兘錛屽鏌愮澶勭悊鍣ㄦ潵璇達紝鏈夋病鏈塽nsigned鏄竴鏍風殑銆傝繖涓や釜鍏抽敭瀛楀茍涓嶆槸鍙互鍦ㄦ墍鏈夌殑緙栬瘧鍣ㄤ腑搴旂敤銆?br />璁頒綇錛屾暣褰㈡暟榪愮畻瑕佹瘮嫻偣鏁拌繍綆楀揩寰楀錛屽洜涓哄鐞嗗櫒鍙互鐩存帴榪涜鏁村瀷鏁拌繍綆楋紝嫻偣鏁拌繍綆楅渶瑕佷緷璧栦簬澶栭儴鐨勬誕鐐規暟澶勭悊鍣ㄦ垨鑰呮誕鐐規暟鏁板搴撱?br />鎴戜滑澶勭悊灝忔暟鐨勬椂鍊欒綺懼績浜涳紝姣旀柟璇存垜浠湪鍋氫竴涓畝鍗曠殑緇熻紼嬪簭鏃訛紝瑕侀檺鍒剁粨鏋滀笉鑳借秴榪?00錛岃灝藉彲鑳芥櫄鐨勬妸瀹冭漿鍖栨垚嫻偣鏁般?/p>

闄ゆ硶鍜屼綑鏁?/ Division and Remainder
銆銆鍦ㄤ竴鑸殑澶勭悊鍣ㄤ腑錛屾牴鎹垎瀛愬拰鍒嗘瘝鐨勪笉鍚岋紝涓涓?2浣嶇殑闄ゆ硶闇瑕?0-140涓椂閽熷懆鏈燂紝絳変簬涓涓浐瀹氱殑鏃墮棿鍔犱笂姣忎釜浣嶈闄ょ殑鏃墮棿銆?br />Time (鍒嗗瓙/ 鍒嗘瘝) = C0 + C1* log2 (鍒嗗瓙/鍒嗘瘝)
      = C0 + C1 * (log2 (鍒嗗瓙) - log2 (鍒嗘瘝)).
銆銆鐜板湪鐨凙RM澶勭悊鍣ㄩ渶瑕佹秷鑰?0+4.3N涓椂閽熷懆鏈燂紝榪欐槸涓涓潪甯歌垂鏃剁殑鎿嶄綔錛岃灝藉彲鑳界殑閬垮厤銆傚湪鏈変簺鎯呭喌涓嬶紝闄ゆ硶琛ㄨ揪寮忓彲浠ョ敤涔樻硶琛ㄨ揪鏄潵閲嶅啓銆傛瘮鏂硅錛?a/b)>c鍙互鍐欐垚a>(c*b),鏉′歡鏄垜浠凡緇忕煡閬揵涓洪潪璐熸暟鑰屼笖b*c涓嶄細瓚呰繃鏁村瀷鏁扮殑鍙栧艱寖鍥淬傚鏋滄垜浠兘澶熺‘瀹氬叾涓殑涓涓搷浣滄暟涓簎nsigned錛岄偅涔堜嬌鐢ㄦ棤絎﹀彿闄ゆ硶灝嗕細鏇村ソ錛屽洜涓哄畠瑕佹瘮鏈夌鍙烽櫎娉曞揩寰楀銆?/p>

鍚堝茍闄ゆ硶榪愮畻鍜屽彇浣欒繍綆?/ Combining division and remainder
銆銆鍦ㄤ竴浜涙儏鍐典笅錛岄櫎娉曡繍綆楀拰鍙栦綑榪愮畻閮介渶瑕佺敤鍒幫紝鍦ㄨ繖縐嶆儏鍐典笅錛岀紪璇戝櫒浼氬皢闄ゆ硶榪愮畻鍜屽彇浣欒繍綆楀悎騫訛紝鍥犱負闄ゆ硶榪愮畻鎬繪槸鍚屾椂榪斿洖鍟嗗拰浣欐暟銆傚鏋滀袱涓繍綆楅兘瑕佺敤鍒幫紝鎴戜滑鍙互灝嗕粬浠啓鍒頒竴璧鳳紙璇戣咃細涓嶈緇嗙┒涓嬮潰鐨勪唬鐮佺殑鍚箟錛屽彧鏄槓榪板啓鍒?#8220;涓璧?#8221;錛?br />int func_div_and_mod (int a, int b) {
        return (a / b) + (a % b);
    }

闄ゆ暟鏄紥鐨勫箓鐨勯櫎娉曞拰鍙栦綑 / Division and remainder by powers of two
銆銆濡傛灉闄ゆ硶榪愮畻涓殑闄ゆ暟鏄紥鐨勫箓錛屾垜浠榪欎釜闄ゆ硶榪愮畻榪樺彲浠ヨ繘涓姝ヤ紭鍖栵紝緙栬瘧鍣ㄤ細浣跨敤縐諱綅榪愮畻鏉ヨ繘琛岃繖縐嶉櫎娉曡繍綆椼傛墍浠ワ紝鎴戜滑瑕佸敖鍙兘緙╂斁姣斾緥涓猴紥鐨勫箓(姣旀柟璇磋鐢紪錛旇屼笉鐢紪錛?銆傚鏋滄槸鏃犵鍙鋒暟錛屽畠瑕佹瘮鏈夌鍙風殑蹇緱澶氥?br />    typedef unsigned int uint;
    uint div32u (uint a) {
     return a / 32;
    }
    int div32s (int a){
     return a / 32;
    }
榪欎袱涓櫎娉曢兘浼氶伩鍏嶈皟鐢ㄩ櫎娉曞嚱鏁幫紝鍙﹀錛屾棤絎﹀彿鐨勯櫎娉曡姣旀湁絎﹀彿鐨勯櫎娉曚嬌鐢ㄦ洿灝戠殑鎸囦護銆傛湁絎﹀彿鐨勯櫎娉曡鑰楄垂鏇村鐨勬椂闂達紝鍥犱負闄ゆ硶鏄嬌鏈緇堢粨鏋滆秼鍚戜簬闆剁殑錛岃岀Щ浣嶅垯鏄秼鍚戜簬璐熸棤絀楓?/p>

鍙栨ā榪愮畻鐨勫彉閫?/ An alternative for modulo arithmetic
鎴戜滑涓鑸嬌鐢ㄥ彇浣欒繍綆楄繘琛屽彇妯★紝涓嶈繃錛屾湁鏃跺欎嬌鐢╥f璇彞涔熸槸鍙鐨勩傝冭檻涓嬮潰鐨勪袱涓緥瀛愶細
    uint modulo_func1 (uint count)
    {
       return (++count % 60);
    }
    uint modulo_func2 (uint count)
    {
       if (++count >= 60)
      count = 0;
      return (count);
    }
絎簩涓緥瀛愯姣旂涓涓洿鍙彇錛屽洜涓虹敱瀹冧駭鐢熺殑浠g爜浼氭洿蹇紝娉ㄦ剰錛氳繖鍙槸鍦╟ount鍙栧艱寖鍥村湪0 – 59涔嬮棿鐨勬椂鍊欐墠琛屻?/p>

浣跨敤鏁扮粍绱㈠紩 / Using array indices
鍋囪浣犺渚濇嵁鏌愪釜鍙橀噺鐨勫鹼紝璁劇疆鍙︿竴涓彉閲忕殑鍙栧間負鐗瑰畾鐨勫瓧絎︼紝浣犲彲鑳戒細榪欐牱鍋氾細
    switch ( queue ) {
    case 0 :   letter = 'W';
       break;
    case 1 :   letter = 'S';
       break;
    case 2 :   letter = 'U';
       break;
    }
鎴栬呰繖鏍鳳細
    if ( queue == 0 )
      letter = 'W';
    else if ( queue == 1 )
      letter = 'S';
    else
      letter = 'U';
鏈変竴涓畝媧佷笖蹇熺殑鏂瑰紡鏄畝鍗曠殑灝嗗彉閲忕殑鍙栧煎仛鎴愪竴涓瓧絎︿覆绱㈠紩錛屼緥濡傦細
static char *classes="WSU";
letter = classes[queue];

鍏ㄥ眬鍙橀噺 / Global variables
鍏ㄥ眬鍙橀噺涓嶄細琚垎閰嶅湪瀵勫瓨鍣ㄤ笂錛屼慨鏀瑰叏灞鍙橀噺闇瑕侀氳繃鎸囬拡鎴栬呰皟鐢ㄥ嚱鏁扮殑鏂瑰紡闂存帴榪涜銆傛墍浠ョ紪璇戝櫒涓嶄細灝嗗叏灞鍙橀噺瀛樺偍鍦ㄥ瘎瀛樺櫒涓紝閭f牱浼氬甫鏉ラ澶栫殑銆佷笉蹇呰鐨勮礋鎷呭拰瀛樺偍絀洪棿銆傛墍浠ュ湪姣旇緝鍏抽敭鐨勫驚鐜腑錛屾垜浠涓嶄嬌鐢ㄥ叏灞鍙橀噺銆?br />濡傛灉涓涓嚱鏁拌棰戠箒鐨勪嬌鐢ㄥ叏灞鍙橀噺錛屾垜浠彲浠ヤ嬌鐢ㄥ眬閮ㄥ彉閲忥紝浣滀負鍏ㄥ眬鍙橀噺鐨勬嫹璐濓紝榪欐牱灝卞彲浠ヤ嬌鐢ㄥ瘎瀛樺櫒浜嗐傛潯浠舵槸鏈嚱鏁拌皟鐢ㄧ殑浠諱綍瀛愬嚱鏁頒笉浣跨敤榪欎簺鍏ㄥ眬鍙橀噺銆?br />涓句釜渚嬪瓙錛?br />    int f(void);
    int g(void);
    int errs;
    void test1(void)
    {
      errs += f();
      errs += g();
    }

    void test2(void)
    {
      int localerrs = errs;
      localerrs += f();
      localerrs += g();
      errs = localerrs;
    }
鍙互鐪嬪埌test1()涓瘡嬈″姞娉曢兘闇瑕佽鍙栧拰瀛樺偍鍏ㄥ眬鍙橀噺errs錛岃屽湪test2()涓紝localerrs鍒嗛厤鍦ㄥ瘎瀛樺櫒涓婏紝鍙渶瑕佷竴鏉℃寚浠ゃ?/p>

浣跨敤鍒悕 / Using Aliases
鑰冭檻涓嬮潰鐨勪緥瀛愶細
    void func1( int *data )
    {
        int i;
        for(i=0; i<10; i++)
        {
              anyfunc( *data, i);
        }
    }
鍗充嬌*data浠庢潵娌℃湁鍙樺寲錛岀紪璇戝櫒鍗翠笉鐭ラ亾anyfunc()娌℃湁淇敼瀹冿紝浜庢槸紼嬪簭姣忔鐢ㄥ埌瀹冪殑鏃跺欙紝閮借鎶婂畠浠庡唴瀛樹腑璇誨嚭鏉ワ紝鍙兘瀹冨彧鏄煇浜涘彉閲忕殑鍒悕錛岃繖浜涘彉閲忓湪紼嬪簭鐨勫叾浠栭儴鍒嗚淇敼銆傚鏋滆兘澶熺‘瀹氬畠涓嶄細琚敼鍙橈紝鎴戜滑鍙互榪欐牱鍐欙細
    void func1( int *data )
    {
        int i;
        int localdata;
        localdata = *data;
        for(i=0; i<10; i++)
        {
              anyfunc ( localdata, i);
        }
    }
榪欐牱浼氱粰緙栬瘧鍣ㄤ紭鍖栧伐浣滄洿澶氱殑閫夋嫨浣欏湴銆?/p>

媧葷殑鍙橀噺鍜屾硠婕?/ Live variables and spilling
瀵勫瓨鍣ㄧ殑鏁伴噺鍦ㄦ瘡涓鐞嗗櫒褰撲腑閮芥槸鍥哄畾鐨勶紝鎵浠ュ湪紼嬪簭鐨勬煇涓壒瀹氱殑浣嶇疆錛屽彲浠ヤ繚瀛樺湪瀵勫瓨鍣ㄤ腑鐨勫彉閲忕殑鏁伴噺鏄湁闄愬埗鐨勩?br />鏈変簺緙栬瘧鍣ㄦ敮鎸?#8220;鐢熷懡鍛ㄦ湡鍒嗗壊”錛坙ive-range splitting錛夛紝涔熷氨鏄鍦ㄧ▼搴忕殑涓嶅悓閮ㄥ垎錛屽彉閲忓彲浠ヨ鍒嗛厤鍒頒笉鍚岀殑瀵勫瓨鍣ㄦ垨鑰呭唴瀛樹腑銆傚彉閲忕殑鐢熷懡鑼冨洿琚畾涔夋垚錛岃搗鐐規槸瀵硅鍙橀噺鐨勪竴嬈$┖闂村垎閰嶏紝緇堢偣鏄湪涓嬫絀洪棿鍒嗛厤涔嬪墠鐨勬渶鍚庝竴嬈′嬌鐢ㄤ箣闂淬傚湪榪欎釜鑼冨洿鍐咃紝鍙橀噺鐨勫兼槸鍚堟硶鐨勶紝鏄椿鐨勩傚湪鐢熷懡鑼冨洿涔嬪錛屽彉閲忎笉鍐嶈浣跨敤錛屾槸姝葷殑錛屽畠鐨勫瘎瀛樺櫒鍙互渚涘叾浠栧彉閲忎嬌鐢紝榪欐牱錛岀紪璇戝櫒灝卞彲浠ュ畨鎺掓洿澶氱殑鍙橀噺鍒板瘎瀛樺櫒褰撲腑銆?br />鍙垎閰嶅埌瀵勫瓨鍣ㄧ殑鍙橀噺闇瑕佺殑瀵勫瓨鍣ㄦ暟閲忕瓑浜庣粡榪囩敓鍛借寖鍥撮噸鍙犵殑鍙橀噺鐨勬暟鐩紝濡傛灉榪欎釜鏁扮洰瓚呰繃鍙敤鐨勫瘎瀛樺櫒鐨勬暟閲忥紝鏈変簺鍙橀噺灝卞繀欏昏鏆傛椂鐨勫瓨鍌ㄥ埌鍐呭瓨涓傝繖縐嶅鐞嗗彨鍋?#8220;娉勬紡(spilling)”銆?br />緙栬瘧鍣ㄤ紭鍏堟硠婕忔渶涓嶉綣佷嬌鐢ㄧ殑鍙橀噺錛屽皢娉勬紡鐨勪唬浠烽檷鍒版渶浣庛傚彲浠ラ氳繃浠ヤ笅鏂瑰紡閬垮厤鍙橀噺鐨?#8220;娉勬紡”錛?br />飦?#160;闄愬埗媧誨彉閲忕殑鏈澶ф暟鐩細閫氬父鍙互浣跨敤綆鍗曞皬宸х殑琛ㄨ揪寮忥紝鍦ㄥ嚱鏁板唴閮ㄤ笉浣跨敤澶鐨勫彉閲忋傛妸澶х殑鍑芥暟鍒嗗壊鎴愭洿鍔犵畝鍗曠殑銆佹洿鍔犲皬宸х殑澶氫釜鍑芥暟錛屼篃鍙兘浼氭湁鎵甯姪銆?br />飦?#160;浣跨敤鍏抽敭瀛梤egister淇グ鏈緇忓父浣跨敤鐨勫彉閲忥細鍛婅瘔緙栬瘧鍣ㄨ繖涓彉閲忓皢浼氳緇忓父鐢ㄥ埌錛岃姹傜紪璇戝櫒浣跨敤闈炲父楂樼殑浼樺厛綰у皢姝ゅ彉閲忓垎閰嶅埌瀵勫瓨鍣ㄤ腑銆傚敖綆″姝わ紝鍦ㄦ煇浜涙儏鍐典笅錛屽彉閲忚繕鏄彲鑳借娉勬紡銆?/p>

鍙橀噺綾誨瀷 / Variable Types
C緙栬瘧鍣ㄦ敮鎸佸熀鏈殑鍙橀噺綾誨瀷錛歝har銆乻hort銆乮nt銆乴ong(signed銆乽nsigned)銆乫loat銆乨ouble銆備負鍙橀噺瀹氫箟鏈鎭板綋鐨勭被鍨嬶紝闈炲父閲嶈錛屽洜涓鴻繖鏍峰彲浠ュ噺灝戜唬鐮佸拰鏁版嵁鐨勯暱搴︼紝鍙互闈炲父鏄捐憲鐨勬彁楂樻晥鐜囥?/p>

灞閮ㄥ彉閲?/ Local variables
濡傛灉鍙兘錛屽眬閮ㄥ彉閲忚閬垮厤浣跨敤char鍜宻hort銆傚浜巆har鍜宻hort綾誨瀷錛岀紪璇戝櫒鍦ㄦ瘡嬈″垎閰嶇┖闂翠互鍚庯紝閮借灝嗚繖縐嶅眬閮ㄥ彉閲忕殑灝哄鍑忓皯鍒?浣嶆垨16浣嶃傝繖瀵逛簬絎﹀彿鍙橀噺鏉ヨ縐頒負絎﹀彿鎵╁睍錛屽鏃犵鍙峰彉閲忕О涓烘棤絎﹀彿鎵╁睍銆傝繖縐嶆搷浣滄槸閫氳繃灝嗗瘎瀛樺櫒宸︾Щ24鎴?6浣嶏紝鐒跺悗鍐嶆湁絎﹀彿錛堟垨鏃犵鍙風殑錛夊彸縐誨悓鏍風殑浣嶆暟鏉ュ疄鐜扮殑錛岄渶瑕佷袱鏉℃寚浠わ紙鏃犵鍙峰瓧鑺傚彉閲忕殑鏃犵鍙鋒墿灞曢渶瑕佷竴鏉℃寚浠わ級銆?br />榪欎簺縐諱綅鎿嶄綔鍙互閫氳繃浣跨敤int鍜寀nsigned int鐨勫眬閮ㄥ彉閲忔潵閬垮厤銆傝繖瀵逛簬閭d簺棣栧厛灝嗘暟鎹皟鍒板眬閮ㄥ彉閲忕劧鍚庡埄鐢ㄥ眬閮ㄥ彉閲忚繘琛岃繍綆楃殑鎯呭喌灝ゅ叾閲嶈銆傚嵆浣挎暟鎹互8浣嶆垨16浣嶇殑褰㈠紡杈撳叆鎴栬緭鍑猴紝鎶婁粬浠綋浣?2浣嶆潵澶勭悊浠嶆槸鏈夋剰涔夌殑銆?br />鎴戜滑鏉ヨ冭檻涓嬮潰鐨勪笁涓緥瀛愬嚱鏁幫細
    int wordinc (int a)
    {
       return a + 1;
    }
    short shortinc (short a)
    {
        return a + 1;
    }
    char charinc (char a)
    {
        return a + 1;
    }
浠栦滑鐨勮繍綆楃粨鏋滄槸鐩稿悓鐨勶紝浣嗘槸絎竴涓唬鐮佺墖鏂姣斿叾浠栫墖鏂繍琛岀殑瑕佸揩銆?/p>

鎸囬拡 / Pointers
濡傛灉鍙兘錛屾垜浠簲璇ヤ嬌鐢ㄧ粨鏋勪綋鐨勫紩鐢ㄤ綔涓哄弬鏁幫紝涔熷氨鏄粨鏋勪綋鐨勬寚閽堬紝鍚﹀垯錛屾暣涓粨鏋勪綋灝變細琚帇鍏ュ爢鏍堬紝鐒跺悗浼犻掞紝榪欎細闄嶄綆閫熷害銆傜▼搴忛傜敤鍊間紶閫掑彲鑳介渶瑕佸嚑K瀛楄妭錛岃屼竴涓畝鍗曠殑鎸囬拡涔熷彲浠ヨ揪鍒板悓鏍風殑鐩殑錛屽彧闇瑕佸嚑涓瓧鑺傚氨鍙互浜嗐?br />銆銆濡傛灉鍦ㄥ嚱鏁板唴閮ㄤ笉浼氭敼鍙樼粨鏋勪綋鐨勫唴瀹癸紝閭d箞灝卞簲璇ュ皢鍙傛暟澹版槑涓篶onst鍨嬬殑鎸囬拡銆備婦涓緥瀛愶細
    void print_data_of_a_structure ( const Thestruct  *data_pointer)
    {
        ...printf contents of the structure...
    }
銆銆榪欎釜渚嬪瓙浠g爜鍛婄煡緙栬瘧鍣ㄥ湪鍑芥暟鍐呴儴涓嶄細鏀瑰彉澶栭儴緇撴瀯浣撶殑鍐呭錛岃闂粬浠殑鏃跺欙紝涓嶉渶瑕侀噸璇匯傝繕鍙互紜繚緙栬瘧鍣ㄦ崟鎹変換浣曚慨鏀硅繖涓彧璇葷粨鏋勪綋鐨勪唬鐮侊紝緇欑粨鏋勪綋浠ラ澶栫殑淇濇姢銆?/p>

鎸囬拡閾?/ Pointer chains
鎸囬拡閾劇粡甯歌鐢ㄦ潵璁塊棶緇撴瀯浣撶殑淇℃伅錛屾瘮濡傦紝涓嬮潰鐨勮繖孌靛父瑙佺殑浠g爜錛?br />    typedef struct { int x, y, z; } Point3;
    typedef struct { Point3 *pos, *direction; } Object;

    void InitPos1(Object *p)
    {
       p->pos->x = 0;
       p->pos->y = 0;
       p->pos->z = 0;
    }
浠g爜涓紝澶勭悊鍣ㄥ湪姣忔璧嬪兼搷浣滅殑鏃跺欓兘瑕侀噸鏂拌杞絧->pos錛屽洜涓虹紪璇戝櫒涓嶇煡閬損->pos->x涓嶆槸p->pos鐨勫埆鍚嶃傛洿濂界殑鍔炴硶鏄皢p->pos緙撳瓨鎴愪竴涓眬閮ㄥ彉閲忥紝濡備笅錛?br />    void InitPos2(Object *p)
    {
       Point3 *pos = p->pos;
       pos->x = 0;
       pos->y = 0;
       pos->z = 0;
    }
鍙︿竴涓彲鑳界殑鏂規硶鏄皢Point3緇撴瀯浣撳寘鍚湪Object緇撴瀯浣撲腑錛屽畬鍏ㄩ伩鍏嶆寚閽堢殑浣跨敤銆?/p>

鏈夋潯浠剁殑鎵ц / Conditional Execution
鏉′歡鎵ц涓昏鐢ㄥ湪if璇彞涓紝鍚屾椂涔熶細鐢ㄥ埌鐢卞叧緋昏繍綆?<,==,>絳?鎴朾ool榪愮畻(&&,!絳?緇勬垚鐨勫鏉傜殑琛ㄨ揪寮忋?br />灝藉彲鑳界殑淇濇寔if鍜宔lse璇彞鐨勭畝鍗曟槸鏈夊ソ澶勭殑錛岃繖鏍鋒墠鑳藉緢濂界殑鏉′歡鍖栥傚叧緋昏〃杈懼紡搴旇琚垎鎴愬寘鍚浉浼兼潯浠剁殑鑻ュ共鍧椼?br />涓嬮潰鐨勪緥瀛愭紨紺轟簡緙栬瘧鍣ㄥ浣曚嬌鐢ㄦ潯浠舵墽琛岋細
    int g(int a, int b, int c, int d)
    {
       if (a > 0 && b > 0 && c < 0 && d < 0) 
       //鍒嗙粍鍖栫殑鏉′歡琚崋緇戝湪涓璧?br />          return a + b + c + d;
       return -1;
    }
鏉′歡琚垎緇勶紝渚夸互鍏惰兘澶熸潯浠跺寲浠栦滑銆?/p>

Boolean琛ㄨ揪寮忓拰鑼冨洿媯鏌?/ Boolean Expressions & Range checking
鏈変竴縐嶅父瑙佺殑boolean琛ㄨ揪寮忚鐢ㄦ潵媯鏌ユ槸鍚︿竴涓彉閲忓彇鍊煎湪鏌愪釜鐗瑰畾鐨勮寖鍥村唴錛屾瘮鏂硅錛屾鏌ヤ竴涓偣鏄惁鍦ㄤ竴涓獥鍙e唴銆?br />    bool PointInRectangelArea (Point p, Rectangle *r)
    {
       return (p.x >= r->xmin && p.x < r->xmax &&
                          p.y >= r->ymin && p.y < r->ymax);
    }
榪欓噷榪樻湁涓涓洿蹇殑鏂規硶錛氭妸(x >= min && x < max) 杞崲鎴?(unsigned)(x-min) < (max-min). 灝ゅ叾鏄痬in涓?鏃訛紝鏇翠負鏈夋晥銆備笅闈㈡槸浼樺寲鍚庣殑浠g爜錛?br />    bool PointInRectangelArea (Point p, Rectangle *r)
    {
        return ((unsigned) (p.x - r->xmin) < r->xmax &&
       (unsigned) (p.y - r->ymin) < r->ymax);
    }

Boolean琛ㄨ揪寮?amp;涓庨浂鐨勬瘮杈?/ Boolean Expressions & Compares with zero
鍦ㄦ瘮杈?CMP)鎸囦護鍚庯紝鐩稿簲鐨勫鐞嗗櫒鏍囧織浣嶅氨浼氳璁劇疆銆傝繖浜涙爣蹇椾綅涔熷彲浠ヨ鍏朵粬鐨勬寚浠よ緗紝璇稿MOV, ADD, AND, MUL, 涔熷氨鏄熀鏈殑鏁板鍜岄昏緫榪愮畻鎸囦護錛堟暟鎹鐞嗘寚浠わ級銆傚亣濡備竴鏉℃暟鎹鐞嗘寚浠よ璁劇疆榪欎簺鏍囧織浣嶏紝閭d箞N鍜孼鏍囧織浣嶇殑璁劇疆鏂規硶璺熸妸鏁板瓧鍜岄浂姣旇緝鐨勮緗柟娉曟槸涓鏍風殑銆侼鏍囧織浣嶈〃紺虹粨鏋滄槸涓嶆槸璐熸暟錛孼鏍囧織浣嶈〃紺虹粨鏋滄槸涓嶆槸闆躲?br />鍦–璇█涓紝澶勭悊鍣ㄤ腑鐨凬鍜孼鏍囧織浣嶅搴旂殑鏈夌鍙鋒暟鐨勫叧緋昏繍綆楃鏄痻 < 0, x >= 0, x == 0, x != 0錛屾棤絎﹀彿鏁板搴旂殑鏄痻 == 0, x != 0 (or x > 0)銆?br />C璇█涓紝姣忕敤鍒頒竴涓叧緋昏繍綆楃錛岀紪璇戝櫒灝變細浜х敓涓涓瘮杈冩寚浠ゃ傚鏋滃叧緋昏繍綆楃鏄笂闈㈢殑鍏朵腑涓涓紝鍦ㄦ暟鎹鐞嗘寚浠ょ揣璺熸瘮杈冩寚浠ょ殑鎯呭喌涓嬶紝緙栬瘧鍣ㄥ氨浼氬皢姣旇緝鎸囦護浼樺寲鎺夈傛瘮濡傦細
    int aFunction(int x, int y)
    {
       if (x + y < 0)
          return 1;
      else
         return 0;
    }
榪欐牱鍋氾紝浼氬湪鍏抽敭寰幆涓妭鐪佹瘮杈冩寚浠わ紝浣夸唬鐮侀暱搴﹀噺灝戯紝鏁堢巼澧炲姞銆侰璇█涓病鏈夊熶綅(carry)鏍囧織浣嶅拰婧㈠嚭(overflow)鏍囧織浣嶇殑姒傚康錛屾墍浠ュ鏋滀笉浣跨敤鍐呭祵姹囩紪璇█錛岃璁塊棶C鍜孷鏍囧織浣嶆槸涓嶅彲鑳界殑銆傚敖綆″姝わ紝緙栬瘧鍣ㄦ敮鎸佸熶綅鏍囧織浣嶏紙鏃犵鍙鋒暟婧㈠嚭錛夛紝姣旀柟璇達細
    int sum(int x, int y)
    {
       int res;
       res = x + y;
       if ((unsigned) res < (unsigned) x) // carry set?  //
         res++;
       return res;
    }

Lazy Evaluation Exploitation
In a if(a>10 && b=4) type of thing, make sure that the first part of the AND expression is the most likely to give a false answer (or the easiest/quickest to calculate), therefore the second part will be less likely to be executed.

鐢╯witch() 浠f浛if...else...
鍦ㄦ潯浠墮夋嫨姣旇緝澶氱殑鎯呭喌涓嬶紝鍙互鐢╥f…else…else…錛屽儚榪欐牱錛?br />    if( val == 1)
        dostuff1();
    else if (val == 2)
        dostuff2();
    else if (val == 3)
        dostuff3();
浣跨敤switch鍙互鏇村揩錛?br />    switch( val )
    {
        case 1: dostuff1(); break;
        case 2: dostuff2(); break;
        case 3: dostuff3(); break;
    }
鍦╥f璇彞涓紝鍗充嬌鏄渶鍚庝竴涓潯浠舵垚绔嬶紝涔熻鍏堝垽鏂墍鏈夊墠闈㈢殑鏉′歡鏄惁鎴愮珛銆係witch璇彞鑳藉鍘婚櫎榪欎簺棰濆鐨勫伐浣溿傚鏋滀綘涓嶅緱涓嶄嬌鐢╥f…else錛岄偅灝辨妸鏈鍙兘鐨勬垚绔嬬殑鏉′歡鏀懼湪鍓嶉潰銆?/p>

浜岃繘鍒跺垎瑙?/ Binary Breakdown
 鎶婂垽鏂潯浠跺仛鎴愪簩榪涘埗鐨勯鏍鹼紝姣斿錛屼笉瑕佷嬌鐢ㄤ笅闈㈢殑鍒楄〃錛?br />    if(a==1) {
    } else if(a==2) {
    } else if(a==3) {
    } else if(a==4) {
    } else if(a==5) {
    } else if(a==6) {
    } else if(a==7) {
    } else if(a==8)
    {
    }
鑰岄噰鐢細
    if(a<=4) {
        if(a==1)     {
        }  else if(a==2)  {
        }  else if(a==3)  {
        }  else if(a==4)   {
        }
    }
    else
    {
        if(a==5)  {
        } else if(a==6)   {
        } else if(a==7)  {
        } else if(a==8)  {
        }
    }
鐢氳嚦錛?br />    if(a<=4)
    {
        if(a<=2)
        {
            if(a==1)
            {
                /* a is 1 */
            }
            else
            {
                /* a must be 2 */
            }
        }
        else
        {
            if(a==3)
            {
                /* a is 3 */
            }
            else
            {
                /* a must be 4 */
            }
        }
    }
    else
    {
        if(a<=6)
        {
            if(a==5)
            {
                /* a is 5 */
            }
            else
            {
                /* a must be 6 */
            }
        }
        else
        {
            if(a==7)
            {
                /* a is 7 */
            }
            else
            {
                /* a must be 8 */
            }
        }
    }
鎱㈤熴佷綆鏁?#160;蹇熴侀珮鏁?br />       c=getch();
       switch(c){
           case 'A':
           {
               do something; 
               break; 
           }
           case 'H':
           {
               do something;
               break;
           } 
           case 'Z':
           {
                do something;
                break;
            }
        } c=getch();
        switch(c){
            case 0: 
            {
                do something;
                break;
            } 
            case 1:
            {
                do something;
                break;
            }
            case 2:
            {
                do something;
                break;
            }
        }
浠ヤ笂鏄袱涓猚ase璇彞涔嬮棿鐨勬瘮杈?/p>

switch璇彞鍜屾煡鎵捐〃 / Switch statement vs. lookup tables
switch璇彞閫氬父鐢ㄤ簬浠ヤ笅鎯呭喌錛?br />飦?#160;璋冪敤鍑犱釜鍑芥暟涓殑涓涓?br />飦?#160;璁劇疆涓涓彉閲忔垨榪斿洖鍊?br />飦?#160;鎵ц鍑犱釜浠g爜鐗囨柇涓殑涓涓?br />濡傛灉case琛ㄧず鏄瘑闆嗙殑錛堣瘧鑰咃細榪炵畫鐨勶紵錛夛紝鍦ㄤ嬌鐢╯witch璇彞鐨勫墠涓ょ鎯呭喌涓紝鍙互浣跨敤鏁堢巼鏇撮珮鐨勬煡鎵捐〃銆傛瘮濡備笅闈㈢殑涓や釜瀹炵幇姹囩紪浠g爜杞崲鎴愬瓧絎︿覆鐨勪緥紼嬶細
    char * Condition_String1(int condition) {
      switch(condition) {
         case 0: return "EQ";
         case 1: return "NE";
         case 2: return "CS";
         case 3: return "CC";
         case 4: return "MI";
         case 5: return "PL";
         case 6: return "VS";
         case 7: return "VC";
         case 8: return "HI";
         case 9: return "LS";
         case 10: return "GE";
         case 11: return "LT";
         case 12: return "GT";
         case 13: return "LE";
         case 14: return "";
         default: return 0;
      }
    }

    char * Condition_String2(int condition) {
       if ((unsigned) condition >= 15) return 0;
          return
          "EQ\0NE\0CS\0CC\0MI\0PL\0VS\0VC\0HI\0LS\0GE\0LT\0GT\0LE\0\0" +
           3 * condition;
    }
絎竴涓緥紼嬮渶瑕?40涓瓧鑺傦紝絎簩涓彧闇瑕?2涓?/p>

寰幆 / Loops
鍦ㄥぇ澶氭暟紼嬪簭涓紝寰幆鏄竴縐嶅父瑙佺殑緇撴瀯錛岀浉褰撴暟閲忕殑鎵ц鏃墮棿琚秷鑰楀湪寰幆涓婏紝鍥犳鍦ㄦ椂闂磋嫑鍒葷殑寰幆涓婁粯鍑烘敞鎰忔槸鍊煎緱鐨勩?/p>

寰幆緇堟 / Loop termination
濡傛灉緙栧啓寰幆緇堟鏉′歡鏄笉鍔犵暀鎰忥紝灝卞彲鑳戒細緇欑▼搴忓甫鏉ユ槑鏄劇殑璐熸媴銆傛垜浠簲璇ュ敖閲忎嬌鐢?#8220;鍊掓暟鍒伴浂”鐨勫驚鐜紝浣跨敤綆鍗曠殑寰幆緇堟鏉′歡銆傚驚鐜粓姝㈡潯浠剁浉瀵圭畝鍗曪紝紼嬪簭鍦ㄦ墽琛岀殑鏃跺欎篃浼氭秷鑰楃浉瀵瑰皯鐨勬椂闂淬傛嬁涓嬮潰涓や釜璁$畻n!鐨勪緥瀛愭潵璇達紝絎竴涓緥瀛愪嬌鐢ㄩ掑寰幆錛岀浜屼釜浣跨敤閫掑噺寰幆銆?br />    int fact1_func (int n)
    {
        int i, fact = 1;
        for (i = 1; i <= n; i++)
          fact *= i;
        return (fact);
    }

    int fact2_func(int n)
    {
        int i, fact = 1;
        for (i = n; i != 0; i--)
           fact *= i;
        return (fact);
    }
緇撴灉鏄紝絎簩涓緥瀛愯姣旂涓涓揩寰楀銆?/p>

鏇村揩鐨刦or()寰幆 / Faster for() loops
榪欐槸涓涓畝鍗曡屾湁鏁堢殑姒傚康錛岄氬父鎯呭喌涓嬶紝鎴戜滑涔犳儻鎶奻or寰幆鍐欐垚榪欐牱錛?br />for( i=0;  i<10;  i++){ ... }
i鍊間緷嬈′負錛?,1,2,3,4,5,6,7,8,9
鍦ㄤ笉鍦ㄤ箮寰幆璁℃暟鍣ㄩ『搴忕殑鎯呭喌涓嬶紝鎴戜滑鍙互榪欐牱錛?br />for( i=10; i--; ) { ... }
i鍊間緷嬈′負: 9,8,7,6,5,4,3,2,1,0,鑰屼笖寰幆瑕佹洿蹇?br />榪欑鏂規硶鏄彲琛岀殑錛屽洜涓哄畠鏄敤鏇村揩鐨刬--浣滀負嫻嬭瘯鏉′歡鐨勶紝涔熷氨鏄“i鏄惁涓洪潪闆舵暟錛屽鏋滄槸鍑忎竴錛岀劧鍚庣戶緇?#8221;銆傜浉瀵逛簬鍘熷厛鐨勪唬鐮侊紝澶勭悊鍣ㄤ笉寰椾笉“鎶奿鍑忓幓10錛岀粨鏋滄槸鍚︿負闈為浂鏁幫紝濡傛灉鏄紝澧炲姞i錛岀劧鍚庣戶緇?#8221;錛屽湪绱у瘑寰幆(tight loop)涓紝榪欎細浜х敓鏄捐憲鐨勫尯鍒?br /> 榪欑璇硶鐪嬭搗鏉ユ湁涓鐐歸檶鐢燂紝鍗村畬鍏ㄥ悎娉曘傚驚鐜腑鐨勭涓夋潯璇彞鏄彲閫夌殑錛堟棤闄愬驚鐜彲浠ュ啓鎴愯繖鏍穎or(;;)錛?涓嬮潰鐨勫啓娉曚篃鍙互鍙栧緱鍚屾牱鐨勬晥鏋滐細
for(i=10; i; i--){}
鎴栬?
for(i=10; i!=0; i--){}
鎴戜滑鍞竴瑕佸皬蹇冪殑鍦版柟鏄璁頒綇寰幆闇瑕佸仠姝㈠湪0錛堝鏋滃驚鐜槸浠?0-80錛岃繖鏍峰仛灝變笉琛屼簡錛夛紝鑰屼笖寰幆鐨勮鏁板櫒涓哄掕鏁版柟寮忋?br />鍙﹀錛屾垜浠繕鍙互鎶婅鏁板櫒鍒嗛厤鍒板瘎瀛樺櫒涓婏紝鍙互浜х敓鏇翠負鏈夋晥鐨勪唬鐮併傝繖縐嶅皢寰幆璁℃暟鍣ㄥ垵濮嬪寲鎴愬驚鐜鏁幫紝鐒跺悗閫掑噺鍒伴浂鐨勬柟娉曪紝鍚屾牱閫傜敤浜巜hile鍜宒o璇彞銆?/p>

娣峰悎寰幆/ Loop jamming
鍦ㄥ彲浠ヤ嬌鐢ㄤ竴涓驚鐜殑鍦哄悎錛屽喅涓嶈浣跨敤涓や釜銆備絾鏄鏋滀綘瑕佸湪寰幆涓繘琛屽ぇ閲忕殑宸ヤ綔錛岃秴榪囧鐞嗗櫒鐨勬寚浠ょ紦鍐插尯錛屽湪榪欑鎯呭喌涓嬶紝浣跨敤涓や釜鍒嗗紑鐨勫驚鐜彲鑳戒細鏇村揩錛屽洜涓烘湁鍙兘榪欎袱涓驚鐜兘琚畬鏁寸殑淇濆瓨鍦ㄦ寚浠ょ紦鍐插尯閲屼簡銆?br />        //鍘熷厛鐨勪唬鐮?br />        for(i=0; i<100; i++){
            stuff();
        }
       
        for(i=0; i<100; i++){
            morestuff();
        }       
         //鏇村ソ鐨勫仛娉?br />        for(i=0; i<100; i++){
            stuff();
            morestuff();
        }

鍑芥暟寰幆 / Function Looping
璋冪敤鍑芥暟鐨勬椂鍊欙紝鍦ㄦц兘涓婂氨浼氫粯鍑轟竴瀹氱殑浠d環銆備笉鍏夎鏀瑰彉紼嬪簭鎸囬拡錛岃繕瑕佸皢閭d簺姝e湪浣跨敤鐨勫彉閲忓帇鍏ュ爢鏍堬紝鍒嗛厤鏂扮殑鍙橀噺絀洪棿銆備負浜嗘彁楂樼▼搴忕殑鏁堢巼錛屽湪紼嬪簭鐨勫嚱鏁扮粨鏋勪笂錛屾湁寰堝宸ヤ綔鍙互鍋氥備繚璇佺▼搴忕殑鍙鎬х殑鍚屾椂錛岃繕瑕佸敖閲忔帶鍒剁▼搴忕殑澶у皬銆?br /> 濡傛灉涓涓嚱鏁板湪涓涓驚鐜腑琚綣佽皟鐢紝灝卞彲浠ヨ冭檻灝嗚繖涓驚鐜斁鍦ㄥ嚱鏁扮殑閲岄潰錛岃繖鏍峰彲浠ュ厤鍘婚噸澶嶈皟鐢ㄥ嚱鏁扮殑璐熸媴錛屾瘮濡傦細
    for(i=0 ; i<100 ; i++)
    {
        func(t,i);
    }

    void func(int w,d)
    {
        lots of stuff.
    }
鍙互鍐欐垚…
    func(t);

    void func(w)
    {
        for(i=0 ; i<100 ; i++)
        {
            //lots of stuff.
        }
    }

寰幆鐨勬媶瑙?/ Loop unrolling
涓轟簡鎻愰珮鏁堢巼錛屽彲浠ュ皢灝忕殑寰幆瑙e紑錛屼笉榪囪繖鏍蜂細澧炲姞浠g爜鐨勫昂瀵搞傚驚鐜鎷嗗紑鍚庯紝浼氶檷浣庡驚鐜鏁板櫒鏇存柊鐨勬鏁幫紝鍑忓皯鎵鎵ц鐨勫驚鐜殑鍒嗘敮鏁扮洰銆傚鏋滃驚鐜彧閲嶅鍑犳錛岄偅瀹冨畬鍏ㄥ彲浠ヨ鎷嗚В寮錛岃繖鏍鳳紝鐢卞驚鐜墍甯︽潵鐨勯澶栧紑閿灝變細娑堝け銆?/p>

姣斿:
        for(i=0; i<3; i++){
            something(i);
        }
       
        //鏇撮珮鏁堢殑鏂瑰紡
         something(0);
        something(1);
        something(2);
鍥犱負鍦ㄦ瘡嬈$殑寰幆涓紝i鐨勫奸兘浼氬鍔狅紝鐒跺悗媯鏌ユ槸鍚︽湁鏁堛傜紪璇戝櫒緇忓父浼氭妸榪欑綆鍗曠殑寰幆瑙e紑錛屽墠鎻愭槸榪欎簺寰幆鐨勬鏁版槸鍥哄畾鐨勩傚浜庤繖鏍風殑寰幆錛?br />for(i=0;i< limit;i++) { ... }
灝變笉鍙兘琚媶瑙o紝鍥犱負鎴戜滑涓嶇煡閬撳畠寰幆鐨勬鏁板埌搴曟槸澶氬皯銆備笉榪囷紝灝嗚繖縐嶇被鍨嬬殑寰幆鎷嗚В寮騫朵笉鏄笉鍙兘鐨勩?/p>

涓庣畝鍗曞驚鐜浉姣旓紝涓嬮潰鐨勪唬鐮佺殑闀垮害瑕侀暱寰堝錛岀劧鑰屽叿鏈夐珮寰楀鐨勬晥鐜囥傞夋嫨8浣滀負鍒嗗潡澶у皬錛屽彧鏄敤鏉ユ紨紺猴紝浠諱綍鍚堥傜殑闀垮害閮芥槸鍙鐨勩備緥瀛愪腑錛屽驚鐜殑鎴愮珛鏉′歡姣忓叓嬈℃墠琚楠屼竴嬈★紝鑰屼笉鏄瘡嬈¢兘瑕佹楠屻傚鏋滈渶瑕佸鐞嗙殑鏁扮粍鐨勫ぇ灝忔槸紜畾鐨勶紝鎴戜滑灝卞彲浠ヤ嬌鐢ㄦ暟緇勭殑澶у皬浣滀負鍒嗗潡鐨勫ぇ灝忥紙鎴栬呮槸鑳藉鏁撮櫎鏁扮粍闀垮害鐨勬暟鍊鹼級銆備笉榪囷紝鍒嗗潡鐨勫ぇ灝忚窡緋葷粺鐨勭紦瀛樺ぇ灝忔湁鍏熾?br />    //渚?
    #include<STDIO.H>
    #define BLOCKSIZE (8)
    void main(void)
    {
    int i = 0;
    int limit = 33;  /* could be anything */
    int blocklimit;

    /* The limit may not be divisible by BLOCKSIZE,
     * go as near as we can first, then tidy up.
     */
    blocklimit = (limit / BLOCKSIZE) * BLOCKSIZE;

    /* unroll the loop in blocks of 8 */
    while( i < blocklimit )
    {
        printf("process(%d)\n", i);
        printf("process(%d)\n", i+1);
        printf("process(%d)\n", i+2);
        printf("process(%d)\n", i+3);
        printf("process(%d)\n", i+4);
        printf("process(%d)\n", i+5);
        printf("process(%d)\n", i+6);
        printf("process(%d)\n", i+7);
        /* update the counter */
        i += 8;
    }
    /*
     * There may be some left to do.
     * This could be done as a simple for() loop,
     * but a switch is faster (and more interesting)
     */
    if( i < limit )
    {
        /* Jump into the case at the place that will allow
         * us to finish off the appropriate number of items.
         */
        switch( limit - i )
        {
            case 7 : printf("process(%d)\n", i); i++;
            case 6 : printf("process(%d)\n", i); i++;
            case 5 : printf("process(%d)\n", i); i++;
            case 4 : printf("process(%d)\n", i); i++;
            case 3 : printf("process(%d)\n", i); i++;
            case 2 : printf("process(%d)\n", i); i++;
            case 1 : printf("process(%d)\n", i);
        }
    }
    }
浜哄彛緇熻-璁$畻闈為浂浣嶇殑涓暟 / Population count - counting the number of bits set
渚?嫻嬭瘯鍗曚釜鐨勬渶浣庝綅錛岃鏁幫紝鐒跺悗縐諱綅銆備緥2鍒欐槸鍏堥櫎4錛岀劧鍚庤綆楄4澶勭殑姣忎釜閮ㄥ垎銆傚驚鐜媶瑙g粡甯鎬細緇欑▼搴忎紭鍖栧甫鏉ユ柊鐨勬満浼氥?br />    //Example - 1
    int countbit1(uint n)
    {
      int bits = 0;
      while (n != 0)
      {
        if (n & 1) bits++;
        n >>= 1;
       }
      return bits;
    }
    //Example - 2
    int countbit2(uint n)
    {
       int bits = 0;
       while (n != 0)
       {
          if (n & 1) bits++;
          if (n & 2) bits++;
          if (n & 4) bits++;
          if (n & 8) bits++;
          n >>= 4;
       }
       return bits;
    }

鍙婃棭鐨勯鍑哄驚鐜?/ Early loop breaking
閫氬父娌℃湁蹇呰閬嶅巻鏁翠釜寰幆銆備婦渚嬫潵璇達紝鍦ㄦ暟緇勪腑鎼滅儲涓涓壒瀹氱殑鍊鹼紝鎴戜滑鍙互鍦ㄦ壘鍒版垜浠渶瑕佸間箣鍚庣珛鍒婚鍑哄驚鐜備笅闈㈢殑渚嬪瓙鍦?0000涓暟瀛椾腑鎼滅儲-99銆?br />    found = FALSE;
    for(i=0;i<10000;i++)
    {
        if( list[i] == -99 )
        {
            found = TRUE;
        }
    }
    if( found ) printf("Yes, there is a -99. Hooray!\n");
榪欐牱鍋氭槸鍙鐨勶紝浣嗘槸涓嶇榪欎釜琚悳绱㈠埌鐨勯」鐩嚭鐜板湪浠涔堜綅緗紝閮戒細鎼滅儲鏁翠釜鏁扮粍銆傝窡濂界殑鏂規硶鏄紝鍐嶆壘鍒版垜浠渶瑕佺殑鏁板瓧浠ュ悗錛岀珛鍒婚鍑哄驚鐜?br />    found = FALSE;
    for(i=0; i<10000; i++)
    {
        if( list[i] == -99 )
        {
            found = TRUE;
            break;
        }
    }
    if( found ) printf("Yes, there is a -99. Hooray!\n");
濡傛灉鏁板瓧鍑虹幇鍦ㄤ綅緗?3涓婏紝寰幆灝變細緇堟錛屽拷鐣ュ墿涓嬬殑9977涓?/p>

鍑芥暟璁捐 / Function Design
淇濇寔鍑芥暟鐭皬綺炬倣錛屾槸瀵圭殑銆傝繖鍙互浣跨紪璇戝櫒鑳藉璺熼珮鏁堝湴榪涜鍏朵粬鐨勪紭鍖栵紝姣斿瀵勫瓨鍣ㄥ垎閰嶃?/p>

璋冪敤鍑芥暟鐨勫紑閿 / Function call overhead
瀵瑰鐞嗗櫒鑰岃█錛岃皟鐢ㄥ嚱鏁扮殑寮閿鏄緢灝忕殑錛岄氬父錛屽湪琚皟鐢ㄥ嚱鏁版墍榪涜鐨勫伐浣滀腑錛屾墍鍗犵殑姣斾緥涔熷緢灝忋傝兘澶熶嬌鐢ㄥ瘎瀛樺櫒浼犻掔殑鍑芥暟鍙傛暟涓暟鏄湁闄愬埗鐨勩傝繖浜涘弬鏁板彲浠ユ槸鏁村瀷鍏煎鐨勶紙char,short,int浠ュ強float閮藉崰鐢ㄤ竴涓瓧錛夛紝鎴栬呮槸4涓瓧浠ュ唴鐨勭粨鏋勪綋錛堝寘鎷?涓瓧鐨刣ouble鍜宭ong long錛夈傚亣濡傚弬鏁扮殑闄愬埗鏄?錛岄偅涔堢5涓強鍚庨潰鐨勫瓧閮戒細琚繚瀛樺埌鍫嗘爤涓傝繖浼氬鍔犲湪璋冪敤鍑芥暟鏄瓨鍌ㄨ繖浜涘弬鏁扮殑錛屼互鍙婂湪琚皟鐢ㄥ嚱鏁頒腑鎭㈠榪欎簺鍙傛暟鐨勪唬浠楓?br />    int f1(int a, int b, int c, int d) {
       return a + b + c + d;
    }
    int g1(void) {
       return f1(1, 2, 3, 4);
    }
    int f2(int a, int b, int c, int d, int e, int f) {
      return a + b + c + d + e + f;
    }
    ing g2(void) {
     return f2(1, 2, 3, 4, 5, 6);
    }
g2鍑芥暟涓紝絎?銆?涓弬鏁拌淇濆瓨鍦ㄥ爢鏍堜腑錛屽湪f2涓鎭㈠錛屾瘡涓弬鏁板甫鏉?嬈″唴瀛樿闂?/p>

鏈灝忓寲鍙傛暟浼犻掑紑閿 / Minimizing parameter passing overhead
涓轟簡灝嗕紶閫掑弬鏁扮粰鍑芥暟鐨勪唬浠烽檷鑷蟲渶浣庯紝鎴戜滑鍙互錛?br />灝藉彲鑳界‘淇濆嚱鏁扮殑褰㈠弬涓嶅浜庡洓涓紝鐢氳嚦鏇村皯錛岃繖鏍峰氨涓嶄細浣跨敤鍫嗘爤鏉ヤ紶閫掑弬鏁般?br />濡傛灉涓涓嚱鏁板艦鍙傚浜庡洓涓紝閭e氨紜繚鍦ㄨ繖涓嚱鏁拌兘澶熷仛澶ч噺鐨勫伐浣滐紝榪欐牱灝卞彲浠ユ姷娑堢敱浼犻掑爢鏍堝弬鏁版墍浠樺嚭鐨勪唬浠楓?br />鐢ㄦ寚鍚戠粨鏋勪綋鐨勬寚閽堜綔褰㈠弬錛岃屼笉鏄粨鏋勪綋鏈韓銆?br />鎶婄浉鍏崇殑鍙傛暟鏀懼埌涓涓粨鏋勯噷閲岄潰錛岀劧鍚庢妸瀹冪殑鎸囬拡浼犵粰鍑芥暟錛屽彲浠ュ噺灝戝弬鏁扮殑涓暟錛屽鍔犵▼搴忕殑鍙鎬с?br />灝唋ong綾誨瀷鐨勫弬鏁扮殑涓暟闄嶅埌鏈灝忥紝鍥犱負瀹冧嬌鐢ㄤ袱涓弬鏁扮殑絀洪棿銆傚浜巇ouble涔熷悓鏍烽傜敤銆?br />閬垮厤鍑虹幇鍙傛暟鐨勪竴閮ㄥ垎浣跨敤瀵勫瓨鍣ㄤ紶杈擄紝鍙︿竴閮ㄥ垎浣跨敤鍫嗘爤浼犺緭鐨勬儏鍐點傝繖縐嶆儏鍐典笅鍙傛暟灝嗚鍏ㄩ儴鍘嬪埌鍫嗘爤閲屻?br />閬垮厤鍑虹幇鍑芥暟鐨勫弬鏁頒釜鏁頒笉瀹氱殑鎯呭喌銆傝繖縐嶆儏鍐典笅錛屾墍鏈夊弬鏁伴兘浣跨敤鍫嗘爤銆?/p>

鍙跺瓙鍑芥暟 / Leaf functions
濡傛灉涓涓嚱鏁頒笉鍐嶈皟鐢ㄥ叾浠栧嚱鏁幫紝榪欐牱鐨勫嚱鏁拌縐頒負鍙跺瓙鍑芥暟銆傚湪璁稿搴旂敤紼嬪簭涓紝澶х害涓鍗婄殑鍑芥暟璋冪敤鏄鍙跺瓙鍑芥暟鐨勮皟鐢ㄣ傚彾瀛愬嚱鏁板湪鎵鏈夊鉤鍙頒笂閮藉彲浠ュ緱鍒伴潪甯擱珮鏁堢殑緙栬瘧錛屽洜涓轟粬浠笉闇瑕佽繘琛屽弬鏁扮殑淇濆瓨鍜屾仮澶嶃傚湪鍏ュ彛鍘嬫爤鍜屽湪鍑哄彛閫鏍堢殑浠d環錛岃窡涓涓凍澶熷鏉傜殑闇瑕?涓垨鑰?涓弬鏁扮殑鍙跺瓙鍑芥暟鎵瀹屾垚鐨勫伐浣滅浉姣旓紝鏄潪甯稿皬鐨勩傚鏋滃彲鑳界殑璇濓紝鎴戜滑灝辮灝介噺瀹夋帓緇忓父琚皟鐢ㄧ殑鍑芥暟鎴愪負鍙跺瓙鍑芥暟銆傚嚱鏁拌璋冪敤鐨勬鏁板彲浠ラ氳繃妯″瀷宸ュ叿錛坧rofiling facility錛夋潵紜畾銆傝繖閲屾湁鍑犵鏂規硶鍙互紜繚鍑芥暟琚紪璇戞垚鍙跺瓙鍑芥暟錛?br />涓嶈皟鐢ㄥ叾浠栧嚱鏁幫細鍖呮嫭閭d簺琚漿鎹㈡垚璋冪敤C璇█搴撳嚱鏁扮殑榪愮畻錛屾瘮濡傞櫎娉曘佹誕鐐硅繍綆椼?br />浣跨敤鍏抽敭瀛梍_inline淇グ灝忕殑鍑芥暟銆?/p>

鍐呭祵鍑芥暟 / Inline functions
瀵逛簬鎵鏈夎皟璇曢夐」錛屽唴宓屽嚱鏁版槸琚姝㈢殑銆備嬌鐢╥nline鍏抽敭瀛椾慨楗板嚱鏁板悗錛岃窡鏅氱殑鍑芥暟璋冪敤涓嶅悓錛屼唬鐮佷腑瀵硅鍑芥暟鐨勮皟鐢ㄥ皢浼氳鍑芥暟浣撴湰韜唬鏇褲傝繖浼氭槸浠g爜鏇村揩錛屽彟涓鏂歸潰瀹冧細褰卞搷浠g爜鐨勯暱搴︼紝灝ゅ叾鏄唴宓屽嚱鏁版瘮杈冨ぇ鑰屼笖緇忓父琚皟鐢ㄧ殑鎯呭喌涓嬨?br />    __inline int square(int x) {
       return x * x;
    }
    #include <MATH.H>
    double length(int x, int y){
        return sqrt(square(x) + square(y));
    }
浣跨敤鍐呭祵鍑芥暟鏈夊嚑涓紭鐐癸細
娌℃湁璋冪敤鍑芥暟鐨勫紑閿銆傚洜涓哄嚱鏁拌鐩存帴浠f浛錛屾病鏈変換浣曢澶栫殑寮閿錛屾瘮濡傚瓨鍌ㄥ拰鎭㈠瀵勫瓨鍣ㄣ?br />鏇翠綆鐨勫弬鏁拌祴鍊煎紑閿銆傚弬鏁頒紶閫掔殑寮閿閫氬父浼氭洿浣庯紝鍥犱負瀹冧笉闇瑕佸鍒跺彉閲忋傚鏋滃叾涓竴浜涘弬鏁版槸甯擱噺錛岀紪璇戝櫒榪樺彲浠ヤ綔榪涗竴姝ョ殑浼樺寲銆?br />鍐呭祵鍑芥暟鐨勭己鐐規槸濡傛灉鍑芥暟鍦ㄨ澶氬湴鏂硅璋冪敤錛屽皢浼氬鍔犱唬鐮佺殑闀垮害銆傞暱搴﹀樊鍒殑澶у皬鏄捐憲渚濊禆浜庡唴宓屽嚱鏁扮殑澶у皬鍜岃皟鐢ㄧ殑嬈℃暟銆?br />浠呭皢灝戞暟鍏抽敭鍑芥暟璁劇疆鎴愬唴宓屽嚱鏁版槸鏄庢櫤鐨勩傚鏋滆緗緱褰擄紝鍐呭祵鍑芥暟鍙互鍑忓皯浠g爜鐨勯暱搴︼紝涓嬈″嚱鏁拌皟鐢ㄩ渶瑕佷竴瀹氭暟閲忕殑鎸囦護錛屼絾鏄紝浣跨敤浼樺寲榪囩殑鍐呭祵鍑芥暟鍙互緙栬瘧鎴愭洿灝戠殑鎸囦護銆?/p>

浣跨敤鏌ユ壘琛?/ Using Lookup Tables
鏈変簺鍑芥暟鍙互榪戜技鎴愭煡鎵捐〃錛岃繖鏍峰彲浠ユ樉钁楃殑鎻愰珮鏁堢巼銆傛煡鎵捐〃鐨勭簿搴︿竴鑸瘮璁$畻鍏紡鐨勭簿搴︿綆錛屼笉榪囧湪澶у鏁扮▼搴忎腑錛岃繖縐嶇簿搴﹀氨瓚沖浜嗐?br />璁稿淇″彿澶勭悊杞歡錛堟瘮濡侻ODEM璋冨埗杞歡錛変細澶ч噺鐨勪嬌鐢╯in鍜宑os鍑芥暟錛岃繖浜涘嚱鏁頒細甯︽潵澶ч噺鐨勬暟瀛﹁繍綆椼傚浜庡疄鏃剁郴緇熸潵璇達紝綺懼害涓嶆槸寰堥噸瑕侊紝sin/cos鏌ユ壘琛ㄦ樉寰楁洿鍔犲疄鐢ㄣ備嬌鐢ㄦ煡鎵捐〃鐨勬椂鍊欙紝灝介噺灝嗙浉榪戠殑榪愮畻鍚堝茍鎴愪竴涓煡鎵捐〃錛岃繖鏍瘋姣斾嬌鐢ㄥ涓煡鎵捐〃瑕佹洿蹇拰浣跨敤鏇村皯鐨勭┖闂淬?/p>

嫻偣榪愮畻 / Floating-Point Arithmetic
灝界嫻偣榪愮畻瀵逛簬浠諱綍澶勭悊鍣ㄦ潵璁查兘鏄緢璐規椂闂寸殑錛屾湁鐨勬椂鍊欙紝鎴戜滑榪樻槸涓嶅緱涓嶇敤鍒拌礋鐐硅繍綆楋紝姣旀柟璇村疄鐜頒俊鍙峰鐞嗐傚敖綆″姝わ紝緙栧啓嫻偣榪愮畻浠g爜鐨勬椂鍊欙紝鎴戜滑瑕佺墷璁幫細
嫻偣闄ゆ硶鏄參鐨勩傞櫎娉曡姣斿姞娉曟垨鑰呬箻娉曟參涓ゅ嶏紝鎴戜滑鍙互鎶婅涓涓父鏁伴櫎鐨勮繍綆楀啓鎴愯榪欎釜鏁扮殑鍊掓暟涔橈紙姣斿錛寈=x/3.0鍐欐垚x=x*(1.0/3.0)錛夈傚掓暟鐨勮綆楀湪緙栬瘧闃舵灝辮瀹屾垚銆?br />浣跨敤float浠f浛double銆侳loat鍨嬪彉閲忔秷鑰楁洿灝戠殑鍐呭瓨鍜屽瘎瀛樺櫒錛岃屼笖鍥犱負瀹冪殑浣庣簿搴︽墍浠ュ叿鏈夋洿楂樼殑鏁堢巼銆傚湪綺懼害瓚沖鐨勬儏鍐典笅錛屽氨瑕佷嬌鐢╢loat銆?br />涓嶈浣跨敤鍏堥獙鍑芥暟錛坱ranscendental functions錛夛紝鍏堥獙鍑芥暟錛堟瘮濡俿in錛宑os錛宭og錛夋槸閫氳繃浣跨敤涓緋誨垪鐨勪箻娉曞拰鍔犳硶瀹炵幇鐨勶紝鎵浠ヨ繖浜涜繍綆椾細姣旀櫘閫氱殑涔樻硶鎱?0鍊嶄互涓娿?br />綆鍖栨誕鐐硅〃杈懼紡銆傜紪璇戝櫒鍦ㄦ暣鍨嬭窡嫻偣鍨嬫販鍚堢殑榪愮畻涓笉浼氳繘琛屽お澶氱殑浼樺寲銆傛瘮濡? * (x / 3) 涓嶄細琚紭鍖栨垚x錛屽洜涓烘誕鐐硅繍綆楅氬父浼氬鑷寸簿搴︾殑闄嶄綆錛岀敋鑷寵〃杈懼紡鐨勯『搴忛兘鏄噸瑕佺殑錛?(a + b) + c 涓嶇瓑浜?a + (b + c)銆傚洜姝わ紝榪涜鎵嬪姩鐨勪紭鍖栨槸鏈夊ソ澶勭殑銆?br />涓嶈繃錛屽湪鐗瑰畾鐨勫満鍚堜笅錛屾誕鐐硅繍綆楃殑鏁堢巼杈句笉鍒版寚瀹氱殑姘村鉤錛岃繖縐嶆儏鍐典笅錛屾渶濂界殑鍔炴硶鍙兘鏄斁寮冩誕鐐硅繍綆楋紝杞屼嬌鐢ㄥ畾鐐硅繍綆椼傚綋鍙橀噺鐨勫彉鍖栬寖鍥磋凍澶熺殑灝忥紝瀹氱偣榪愮畻瑕佹瘮嫻偣榪愮畻綺懼害鏇撮珮銆侀熷害鏇村揩銆?/p>

鍏朵粬鐨勬妧宸?/ Misc tips
涓鑸儏鍐典笅錛屽彲浠ョ敤瀛樺偍絀洪棿鎹㈠彇鏃墮棿銆備綘鍙互緙撳瓨閭d簺緇忓父鐢ㄥ埌鐨勬暟鎹紝鑰屼笉鏄瘡嬈¢兘閲嶆柊璁$畻銆佹垨鑰呴噸鏂拌杞姐傛瘮濡俿in/cos琛紝鎴栬呬吉闅忔満鏁扮殑琛紙濡傛灉浣犱笉鏄湡鐨勯渶瑕侀殢鏈烘暟錛屼綘鍙互鍦ㄥ紑濮嬬殑鏃跺欒綆?000涓紝鍦ㄩ殢鍚庣殑浠g爜涓噸澶嶅埄鐢ㄥ氨鏄簡錛?br />灝介噺灝戠殑浣跨敤鍏ㄥ眬鍙橀噺銆?br />灝嗕竴涓枃浠跺唴閮ㄧ殑鍙橀噺澹版槑鎴愰潤鎬佺殑錛岄櫎闈炲畠鏈夊繀瑕佹垚涓哄叏灞鐨勩?br />涓嶈浣跨敤閫掑綊銆傞掑綊鍙互浣夸唬鐮侀潪甯告暣榻愬拰緹庤錛屼絾浼氫駭鐢熷ぇ閲忕殑鍑芥暟璋冪敤鍜屽紑閿銆?br />璁塊棶鍗曠淮鏁扮粍瑕佹瘮澶氫綅鏁扮粍蹇?br />浣跨敤#defined瀹忎唬鏇跨粡甯哥敤鍒扮殑灝忓嚱鏁般?/p>

鍙傝冩枃鐚?/ References
錛堣瘧鑰呯暐錛?/p>

鍏朵粬緗戠粶璧勬簮 / Other URLs
http://www.xs4all.nl/~ekonijn/loopy.html
http://www.public.asu.edu/~sshetty/Optimizing_Code_Manual.doc
http://www.abarnett.demon.co.uk/tutorial.html

璇戣呭0鏄庯細浣滆呭鎴戠殑榪欑墖璇戞枃騫朵笉鐭ユ儏錛屾垜鍦ㄥ畬鍏ㄤ笉鐭ヤ細浣滆呯殑鎯呭喌涓嬬炕璇戜簡鍏跺彂琛ㄤ簬www.codeproject.com鐨勬枃绔狅紝浣嗘垜淇濈暀浜嗗師鏂囩殑浣滆呬俊鎭傝鎮ㄤ粎灝嗘鏂囩敤浜庡鏈爺絀剁洰鐨勩傚鏋滄偍瑕佸皢姝ゆ枃鐢ㄤ簬鍏跺畠鐩殑錛岃涓庡師浣滆呰仈緋匯傚鏋滄偍璁や負鏂囩珷緲昏瘧鐨勬湁闂錛岃瘧鑰呭皢闈炲父楂樺叴鐪嬪埌鎮ㄦ彁鍑虹殑瀹濊吹鎰忚銆?br />



xlander 2006-07-21 10:07 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              亚洲精品中文字幕在线观看| 久久www成人_看片免费不卡| 欧美一区三区二区在线观看| 亚洲视频在线看| 亚洲图片激情小说| 午夜精品福利在线观看| 久久国内精品视频| 鲁大师成人一区二区三区| 欧美国产一区在线| 99re6这里只有精品| 亚洲图片在线| 久久成人综合网| 欧美激情一区二区三区高清视频| 欧美日韩国产色综合一二三四| 欧美视频在线观看免费| 国产视频在线观看一区| 亚洲日本成人| 久久激情综合| 欧美激情综合亚洲一二区| 国产精品亚洲综合久久| 激情五月婷婷综合| 亚洲视频免费| 久久亚洲春色中文字幕| 亚洲美女av网站| 久久久在线视频| 国产精品久久久久aaaa| 在线 亚洲欧美在线综合一区| 一区二区三区日韩精品| 久久噜噜亚洲综合| 一区二区三区高清在线观看| 久久嫩草精品久久久精品| 国产精品扒开腿爽爽爽视频 | 欧美精品一区二区精品网| 国产精品久久久久久久久久尿| 国内外成人在线视频| 亚洲午夜小视频| 久久尤物视频| 亚洲综合首页| 欧美日韩国产片| 1024亚洲| 久久国产精品第一页| 亚洲日韩中文字幕在线播放| 中文av一区二区| 欧美精品日韩一区| 在线观看成人网| 久久九九免费视频| 亚洲一区二区视频| 欧美日韩精品二区第二页| 亚洲二区在线观看| 久久中文欧美| 欧美在线视屏| 国产精品一二| 午夜精品久久久久久久男人的天堂 | 国产综合色产在线精品| 日韩视频―中文字幕| 久久久久久久久久久久久女国产乱 | 欧美一级视频免费在线观看| 欧美日韩在线另类| 99这里只有久久精品视频| 欧美寡妇偷汉性猛交| 久久久久五月天| 亚洲欧美欧美一区二区三区| 欧美日韩一区二区视频在线| 日韩手机在线导航| 亚洲精品中文字幕在线| 欧美成人综合网站| 亚洲美女在线观看| 亚洲精品一区二区在线| 免费视频亚洲| 亚洲精品日产精品乱码不卡| 欧美二区在线| 欧美国产一区二区三区激情无套| 久久精品亚洲| 亚洲国产日韩欧美| 亚洲国产高清一区二区三区| 免费一级欧美在线大片| 亚洲国产一区二区三区a毛片| 欧美大片第1页| 欧美激情小视频| 正在播放亚洲一区| 亚洲午夜精品久久久久久浪潮 | 欧美在线观看视频| 欧美专区在线观看一区| 在线成人激情黄色| 亚洲韩国日本中文字幕| 欧美日韩国产不卡| 午夜视频在线观看一区二区三区| 亚洲一区欧美二区| 激情综合激情| 亚洲人成毛片在线播放| 国产精品黄色在线观看| 久久久夜精品| 另类图片综合电影| 一本色道久久88精品综合| 国产精品99久久99久久久二8 | 亚洲欧美中文日韩v在线观看| 午夜精品亚洲| 亚洲破处大片| 久久久99国产精品免费| 猛干欧美女孩| 欧美精品在线观看91| 久久激情网站| 欧美精品一线| 久久亚洲国产精品一区二区| 欧美sm重口味系列视频在线观看| 国产精品99久久久久久www| 欧美一区观看| 一区二区三区蜜桃网| 欧美在线一级va免费观看| 99国产成+人+综合+亚洲欧美| 亚洲欧美激情四射在线日| 亚洲激精日韩激精欧美精品| 亚洲欧美另类久久久精品2019| 亚洲三级影片| 久久久久久久久久久久久女国产乱 | 亚洲私人影院在线观看| 久久精品成人欧美大片古装| 亚洲素人一区二区| 六月天综合网| 久久精品综合一区| 国产精品成人一区| 亚洲精品午夜| 亚洲精品影院在线观看| 久久久久久高潮国产精品视| 午夜精品免费视频| 欧美日韩国产色综合一二三四| 欧美激情第五页| 国内外成人免费视频| 亚洲一区国产精品| 亚洲一区二区高清| 欧美另类一区二区三区| 欧美激情精品久久久久久黑人| 国产中文一区| 性伦欧美刺激片在线观看| 亚洲一区二区三区高清| 欧美日韩ab片| 亚洲精品在线观| 99在线观看免费视频精品观看| 麻豆久久精品| 欧美国产日韩一区二区在线观看| 狠狠久久婷婷| 久久久久久久综合日本| 久久综合精品一区| 伊大人香蕉综合8在线视| 欧美一区二视频| 免费成人av资源网| 亚洲国产精品免费| 欧美二区乱c少妇| 欧美激情视频给我| 亚洲精品在线免费观看视频| 欧美国产视频日韩| 亚洲精选91| 一区二区三区国产在线| 欧美日韩欧美一区二区| 亚洲破处大片| 亚洲一区免费视频| 国产免费观看久久| 久久久久99| 亚洲国产天堂久久综合网| 一区二区不卡在线视频 午夜欧美不卡在 | 欲色影视综合吧| 久久精品视频在线播放| 欧美高清不卡| 一区二区三区欧美日韩| 国产精品女人毛片| 欧美在线不卡视频| 亚洲成色最大综合在线| 亚洲精品一区二区三区婷婷月| 欧美人成在线视频| 亚洲综合丁香| 美女主播精品视频一二三四| 亚洲激情成人网| 欧美日韩理论| 久久都是精品| 日韩亚洲精品视频| 久久久xxx| 艳妇臀荡乳欲伦亚洲一区| 国产精品日韩专区| 美女久久网站| 亚洲在线中文字幕| 欧美成人tv| 亚洲一区二区三区激情| 在线观看欧美一区| 国产精品第三页| 美国成人毛片| 亚洲一区二区欧美| 亚洲国产1区| 久久精品官网| 一本色道婷婷久久欧美| 国产私拍一区| 欧美午夜不卡| 美日韩精品免费| 亚洲免费在线| 亚洲另类自拍| 亚洲高清三级视频| 久久国产精品99精品国产| 在线一区二区日韩| 亚洲欧洲精品一区二区三区不卡| 国产精品视频导航| 欧美日韩亚洲综合|