锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品久久久久久久久果冻传媒,午夜激情一区,99精品久久久http://m.shnenglu.com/Leaf/category/10585.html~~zh-cnFri, 14 Jun 2013 21:23:50 GMTFri, 14 Jun 2013 21:23:50 GMT60闀滈潰鍙嶅皠鐭╅樀鎺ㄥhttp://m.shnenglu.com/Leaf/archive/2013/06/15/201017.htmlRender DonkeyRender DonkeyFri, 14 Jun 2013 16:48:00 GMThttp://m.shnenglu.com/Leaf/archive/2013/06/15/201017.htmlhttp://m.shnenglu.com/Leaf/comments/201017.htmlhttp://m.shnenglu.com/Leaf/archive/2013/06/15/201017.html#Feedback0http://m.shnenglu.com/Leaf/comments/commentRss/201017.htmlhttp://m.shnenglu.com/Leaf/services/trackbacks/201017.html鏈榪戝叕鍙告父鎴忔鍦ㄥ噯澶囦笂綰匡紝鎵浠lasCC涔熷氨娌℃湁鐮旂┒浜?jiǎn)锛屽伓灏旀湁闂插姛澶Q屼篃鏄帺鐜?DMAX鍜孶NITY3D銆?鎰熻涓嶄細(xì)3DMAX錛屾槸涓縐嶅眬闄愩?/p>

鍥炲埌涓婚錛岃褰曚竴涓嬮暅闈㈠弽灝勭煩闃電殑鎺ㄥ銆?/p>

鍦ㄧ敤Irrlicht鍜孯TT鍋氶暅闈㈡晥鏋滅殑鏃跺欙紝鐢ㄥ埌浜?jiǎn)鍙崬畡鐭╅橖c(diǎn)?灝辨槸闇瑕佹妸鎽勭浉鏈洪暅鍍忥紝娓叉煋涓涓猂T錛岃創(chuàng)鍒伴暅闈㈡ā鍨嬩笂銆傝繖涓叾瀹炶繕綰犵粨浜?jiǎn)璁镐箙锛屽洜湄?fù)涔嬪墠鍋氭按闈㈡覆鏌撶殑鏃跺欙紝姘撮潰鏄鉤鐨勶紝寰堝ソ璁$畻鎽勭浉鏈哄湪姘撮潰浠ヤ笅鐨勪綅緗?浣嗘槸鎹㈡垚闀滈潰錛屽氨涓嶄竴鏍蜂簡(jiǎn)錛屽洜涓洪暅闈㈠彲鑳芥槸浠繪剰闈€?浜庢槸灝遍渶瑕佷竴涓氱敤鐨勫弽灝勭煩闃點(diǎn)?/p>

鍙嶅皠鐭╅樀鐨勮綆楁槸鍩轟簬騫抽潰鐨勶紝鍥犱負(fù)錛屼換浣曞弽灝勶紝閮介渶瑕佷竴涓弽灝勯潰銆?/p>

鎵浠ワ紝鎴戜滑鍏堢粰鍑哄鉤闈㈣〃紺?Plane(nx,ny,nz,d); 鍏朵腑(nx,ny,nz)宸茬粡鍗曚綅鍖栥?/p>

鐒跺悗錛屾垜浠亣璁劇┖闂翠腑鏈変換鎰忎竴鐐筆(x,y,z,1)

璁捐繖涓偣P浠lane涓哄弽灝勯潰鐨勯暅鍍忕偣涓篜1(x1,y1,z1,w)銆?/p>

 

錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛?/p>

鏍規(guī)嵁瀹氱悊錛屾垜浠煡閬擄紝 鑻ヤ袱涓偣浠ユ煇涓鐐逛負(fù)闀滃儚錛屽垯涓や釜鐐圭殑鍧愭爣涔嬪拰闄や互2錛屽氨鍒氬ソ鏄腑鐐廣?

榪欎釜鐞嗚鎴戜滑鐢ㄥ埌榪欓噷鐨勮瘽錛?閭h繖涓腑鐐瑰氨鍒氬ソ鏄鉤闈笂鐨勪竴涓偣銆?騫抽潰涓婄殑榪欎釜鐐瑰氨鏄?P(x,y,z,1) - (nx,ny,nz,0)*D .  鍏朵腑D灝辨槸鐐筆鍒板鉤闈㈢殑璺濈

鑰孌=Plane dot P = (x*nx+y*ny+z*nz+d);

鐢變笂闈㈢殑鎻忚堪錛屾垜浠┈涓婃兂鍒幫紝閭d箞瑕佹眰鐐筆1鐨勮瘽錛屽氨鏄繖鏍?nbsp;

(P+P1)/2 = P(x,y,z,1) - (nx,ny,nz,0)*D

=> P1 = P(x,y,z,1) - 2(nx,ny,nz,0)*D

=>P1 = P(x,y,z,1) - 2(nx,ny,nz,0)*(x*nx+y*ny+z*nz+d)

 

鎹㈡垚鐭╅樀褰㈠紡鍒欎負(fù)

                            锝?-2*nx*nx   -2*nx*ny         -2*nx*nz         0  |

                             | -2*ny*nx     1 - 2*ny*ny     -2*ny*nz         0  |

P1 = {x,y,z,1}   x   | -2*nz*nx     -2*nz*ny         1-2*nz*nz        0  |

                             | -2*d*nx      -2*d*ny           -2*d*nz           1  |

 

澶у姛鍛婃垚

btw:榪欐槸琛屼富鐭╅樀琛ㄧず娉?/p>

Render Donkey 2013-06-15 00:48 鍙戣〃璇勮
]]>
璇鋒暀澶у涓涓叧浜嶦POLLET鍜孍POLLLT鐨勯棶棰?/title><link>http://m.shnenglu.com/Leaf/archive/2013/02/25/198061.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Mon, 25 Feb 2013 05:05:00 GMT</pubDate><guid>http://m.shnenglu.com/Leaf/archive/2013/02/25/198061.html</guid><wfw:comment>http://m.shnenglu.com/Leaf/comments/198061.html</wfw:comment><comments>http://m.shnenglu.com/Leaf/archive/2013/02/25/198061.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/Leaf/comments/commentRss/198061.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Leaf/services/trackbacks/198061.html</trackback:ping><description><![CDATA[浠婂ぉ鍦ㄦ煡鐪婨POLLET鍜孍POLLLT鐨勭粏鑺傜殑鏃跺欙紝鍙戠幇涓綃囨枃绔犮?浣嗕笉鐭ユ枃涓鐨勬槸鍚︽湁閬撶悊錛屾湜鍚勪綅澶уぇ緇欎釜鏄庣‘鐨勭瓟澶嶃?br />娓告垙鏈嶅姟鍣紝鎴戜滑鐢ㄧ殑鏄疎T鏂瑰紡銆?br /><a ><br /></a><h2><a ></a><a ><font color="#1086a4">鍓栨瀽 epoll ET/LT 瑙﹀彂鏂瑰紡鐨勬ц兘宸紓璇В錛堝畾鎬у垎鏋愶級(jí)</font><br /><br /><br /></a><p style="margin: 0px 0px 18px; padding: 0px; color: black; line-height: 18px; font-weight: normal; background-color: #ffffff; font-family: 寰蔣闆呴粦; font-size: 16px; "><span style="font-family: Arial; ">騫蟲(chóng)椂澶у浣跨敤 epoll 鏃墮兘鐭ラ亾鍏朵簨浠惰Е鍙戞ā寮忔湁榛樿鐨?level-trigger 妯″紡鍜岄氳繃 EPOLLET 鍚敤鐨?edge-trigger 妯″紡涓ょ銆備粠 epoll 鍙戝睍鍘嗗彶鏉ョ湅錛屽畠鍒氳癁鐢熸椂鍙湁 edge-trigger 妯″紡錛屽悗鏉ュ洜瀹規(guī)槗浜х敓 race-cond 涓斾笉鏄撹寮鍙戣呯悊瑙o紝鍙堝鍔犱簡(jiǎn) level-trigger 妯″紡騫朵綔涓洪粯璁ゅ鐞嗘柟寮忋?/span></p><p style="margin: 0px 0px 18px; padding: 0px; color: black; line-height: 18px; font-weight: normal; background-color: #ffffff; font-family: 寰蔣闆呴粦; font-size: 16px; "><span style="font-family: Arial; ">浜岃呯殑宸紓鍦ㄤ簬 level-trigger 妯″紡涓嬪彧瑕佹煇涓?fd 澶勪簬 readable/writable 鐘舵侊紝鏃犺浠涔堟椂鍊欒繘琛?epoll_wait 閮戒細(xì)榪斿洖璇?fd錛涜?edge-trigger 妯″紡涓嬪彧鏈夋煇涓?fd 浠?unreadable 鍙樹(shù)負(fù) readable 鎴栦粠 unwritable 鍙樹(shù)負(fù) writable 鏃訛紝epoll_wait 鎵嶄細(xì)榪斿洖璇?fd銆?/span></p><p style="margin: 0px 0px 18px; padding: 0px; color: black; line-height: 18px; font-weight: normal; background-color: #ffffff; font-family: 寰蔣闆呴粦; font-size: 16px; "><strong style="margin: 0px; padding: 0px; font-family: Arial; ">閫氬父鐨勮鍖烘槸錛歭evel-trigger 妯″紡鍦?epoll 姹犱腑瀛樺湪澶ч噺 fd 鏃舵晥鐜囪鏄捐憲浣庝簬 edge-trigger 妯″紡銆?/strong></p><p style="margin: 0px 0px 18px; padding: 0px; color: black; line-height: 18px; font-weight: normal; background-color: #ffffff; font-family: 寰蔣闆呴粦; font-size: 16px; "><span style="font-family: Arial; ">浣嗕粠 kernel 浠g爜鏉ョ湅錛宔dge-trigger/level-trigger 妯″紡鐨勫鐞嗛昏緫鍑犱箮瀹屽叏鐩稿悓錛屽樊鍒粎鍦ㄤ簬 level-trigger 妯″紡鍦?event 鍙戠敓鏃朵笉浼?xì)灏嗗叾浠?ready list 涓Щ闄わ紝鐣ヤ負(fù)澧炲ぇ浜?event 澶勭悊榪囩▼涓?kernel space 涓褰曟暟鎹殑澶у皬銆?/span></p><p style="margin: 0px 0px 18px; padding: 0px; color: black; line-height: 18px; font-weight: normal; background-color: #ffffff; font-family: 寰蔣闆呴粦; font-size: 16px; "><span style="font-family: Arial; ">鐒惰岋紝edge-trigger 妯″紡涓瀹氳閰嶅悎 user app 涓殑 ready list 緇撴瀯錛屼互渚挎敹闆嗗凡鍑虹幇 event 鐨?fd錛屽啀閫氳繃 round-robin 鏂瑰紡鎸ㄤ釜澶勭悊錛屼互姝ら伩鍏嶉氫俊鏁版嵁閲忓緢澶ф椂鍑虹幇蹇欎簬澶勭悊鐑偣 fd 鑰屽鑷撮潪鐑偣 fd 楗挎鐨勭幇璞°傜粺瑙?kernel 鍜?user space錛岀敱浜?user app 涓?ready list 鐨勫疄鐜板崈濂囩櫨鎬紝涓嶄竴瀹氶兘緇忚繃浠旂粏鐨勬帹鏁蹭紭鍖栵紝鍥犳 edge-trigger 鐨勬誨唴瀛樺紑閿寰寰榪樺ぇ浜?level-trigger 鐨勫紑閿銆?/span></p><p style="margin: 0px 0px 18px; padding: 0px; color: black; line-height: 18px; font-weight: normal; background-color: #ffffff; font-family: 寰蔣闆呴粦; font-size: 16px; "><span style="font-family: Arial; ">涓鑸彿縐?edge-trigger 妯″紡鐨勪紭鍔垮湪浜庤兘澶熷噺灝?epoll 鐩稿叧緋葷粺璋冪敤錛岃繖璇濅笉鍋囷紝浣?user app 閲屽彲涓嶆槸鍙湁 epoll 鐩稿叧緋葷粺璋冪敤鍚э紵涓轟簡(jiǎn)緇曡繃楗挎闂錛宔dge-trigger 妯″紡鐨?user app 瑕佽嚜琛岃繘琛?read/write 寰幆澶勭悊錛岃繖鍏朵腑澧炲姞鐨勭郴緇熻皟鐢ㄥ拰鍑忓皯鐨?epoll 緋葷粺璋冪敤鍔犺搗鏉ワ紝鏈夎皝鑳借涓瀹氬氨鑳芥槑鏄懼湴蹇搗鏉ュ憿錛?/span></p><p style="margin: 0px 0px 18px; padding: 0px; color: black; line-height: 18px; font-weight: normal; background-color: #ffffff; font-family: 寰蔣闆呴粦; font-size: 16px; "><span style="font-family: Arial; ">瀹為檯涓婏紝epoll_wait 鐨勬晥鐜囨槸 O(ready fd num) 綰у埆鐨勶紝鍥犳 edge-trigger 妯″紡鐨勭湡姝d紭鍔垮湪浜庡噺灝戜簡(jiǎn)姣忔 epoll_wait 鍙兘闇瑕佽繑鍥炵殑 fd 鏁伴噺錛屽湪騫跺彂 event 鏁伴噺鏋佸鐨勬儏鍐典笅鑳藉姞蹇?epoll_wait 鐨勫鐞嗛熷害錛屼絾鍒繕?shù)簡(jiǎn)杩欏彧鏄拡瀵?epoll 浣撶郴鑷繁鑰岃█鐨勬彁鍗囷紝涓庢鍚屾椂 user app 闇瑕佸鍔犲鏉傜殑閫昏緫銆佽姳璐規(guī)洿澶氱殑 cpu/mem 涓庡叾閰嶅悎宸ヤ綔錛屾諱綋鎬ц兘鏀剁泭絀剁珶濡備綍錛熷彧鏈夊疄闄呮祴閲忔墠鐭ラ亾錛屾棤娉曚竴姒傝岃銆備笉榪囷紝涓轟簡(jiǎn)闄嶄綆澶勭悊閫昏緫澶嶆潅搴︼紝甯哥敤鐨勪簨浠跺鐞嗗簱澶ч儴鍒嗛兘閫夋嫨浜?level-trigger 妯″紡錛堝 libevent銆乥oost::asio絳夛級(jí)</span></p><p style="margin: 0px 0px 18px; padding: 0px; color: black; line-height: 18px; font-weight: normal; background-color: #ffffff; font-family: 寰蔣闆呴粦; font-size: 16px; "><strong style="margin: 0px; padding: 0px; font-family: Arial; ">緇撹錛?br style="margin: 0px; padding: 0px; " />• epoll 鐨?edge-trigger 鍜?level-trigger 妯″紡澶勭悊閫昏緫宸紓鏋佸皬錛屾ц兘嫻嬭瘯緇撴灉琛ㄦ槑甯歌搴旂敤鍦烘櫙 涓簩鑰呮ц兘宸紓鍙互蹇界暐銆?br style="margin: 0px; padding: 0px; " />• 浣跨敤 edge-trigger 鐨?user app 姣斾嬌鐢?level-trigger 鐨勯昏緫澶嶆潅錛屽嚭閿欐鐜囨洿楂樸?br style="margin: 0px; padding: 0px; " />• edge-trigger 鍜?level-trigger 鐨勬ц兘宸紓涓昏鍦ㄤ簬 epoll_wait 緋葷粺璋冪敤鐨勫鐞嗛熷害錛屾槸鍚︽槸 user app 鐨勬ц兘鐡墮闇瑕佽搴旂敤鍦烘櫙鑰屽畾錛屼笉鍙竴姒傝岃銆?/strong></p><p style="margin: 0px 0px 18px; padding: 0px; color: black; line-height: 18px; font-weight: normal; background-color: #ffffff; font-family: 寰蔣闆呴粦; font-size: 14px; "><span style="font-family: Arial; ">嬈㈣繋灝辨璇濋榪涜娣卞叆璋冪爺銆佽璁猴紒</span></p><p style="margin: 0px 0px 18px; padding: 0px; color: black; line-height: 18px; font-size: 12px; font-weight: normal; background-color: #ffffff; font-family: 寰蔣闆呴粦; "><span style="font-family: Arial; ">鍙傝冭祫鏂欙細(xì)</span><br style="margin: 0px; padding: 0px; " /><span style="font-family: Arial; ">• linux kernel source錛歠s/eventpoll.c</span><br style="margin: 0px; padding: 0px; " /><span style="font-family: Arial; ">• “Comparing and Evaluating epoll, select, and poll Event</span><br style="margin: 0px; padding: 0px; " /><span style="font-family: Arial; ">Mechanisms”錛歨ttp://bcr2.uwaterloo.ca/~brecht/papers/getpaper.php?file=ols-2004.pdf</span><br style="margin: 0px; padding: 0px; " /><span style="font-family: Arial; ">• “Edge-triggered interfaces are too difficult?”錛歨ttp://lwn.net/Articles/25137/</span></p><p style="margin: 0px 0px 18px; padding: 0px; color: #333333; line-height: 18px; font-family: 'Microsoft Yahei', Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: normal; background-color: #ffffff; "><span style="font-family: Arial; ">By QingWu</span></p></h2><a ><br /></a><img src ="http://m.shnenglu.com/Leaf/aggbug/198061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2013-02-25 13:05 <a href="http://m.shnenglu.com/Leaf/archive/2013/02/25/198061.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浠i鑹茬殑鎻愮ず淇℃伅杈撳嚭銆?/title><link>http://m.shnenglu.com/Leaf/archive/2010/08/20/124041.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Thu, 19 Aug 2010 17:00:00 GMT</pubDate><guid>http://m.shnenglu.com/Leaf/archive/2010/08/20/124041.html</guid><wfw:comment>http://m.shnenglu.com/Leaf/comments/124041.html</wfw:comment><comments>http://m.shnenglu.com/Leaf/archive/2010/08/20/124041.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Leaf/comments/commentRss/124041.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Leaf/services/trackbacks/124041.html</trackback:ping><description><![CDATA[鍓嶅嚑澶╁湪緗戜笂鎼滃埌涓孌墊敼鍙樻帶鍒跺彴瀛楃棰滆壊鐨勪唬鐮侊紝鐢ㄥ畠鍋氫簡(jiǎn)涓涓唬瀛椾綋棰滆壊鐨凩og杈撳嚭銆傛劅瑙夎繕鏄瘮杈冧笉閿欑殑銆?br><br>  /*<br>  0 榛戣壊銆1銆娣辮摑銆錛掔豢銆錛撴祬钃?br>  錛旀殫綰€錛曟殫绱錛栧榛勩錛楁祬鐧?br>  錛樻祬鐏般錛欎寒钃濄錛戯紣浜豢銆錛戯紤闈炲父钃?br>  錛戯紥澶х孩銆錛戯紦浜傳銆錛戯紨榛勩錛戯紩鐧姐<br>  */<br><br>榪欐槸閭f浠g爜銆傛垜宸插仛鎴愪簡(jiǎn)ANSI鍜孶NICODE閮芥敮鎸佺殑鐗堟湰錛屽叿浣撲負(fù)浠涔堣榪欐牱錛屽彲浠ョ湅鍓嶄竴綃囧叧浜庡瓧絎︾紪鐮佷笌IO鐨勯棶棰樸?br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> __Printfc(U16 color, </span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> TCHAR</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> format,<img src="http://m.shnenglu.com/Images/dot.gif">) <br><img id=Codehighlighter1_54_587_Open_Image onclick="this.style.display='none'; Codehighlighter1_54_587_Open_Text.style.display='none'; Codehighlighter1_54_587_Closed_Image.style.display='inline'; Codehighlighter1_54_587_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_54_587_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_54_587_Closed_Text.style.display='none'; Codehighlighter1_54_587_Open_Image.style.display='inline'; Codehighlighter1_54_587_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>    </span><span id=Codehighlighter1_54_587_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_54_587_Open_Text><span style="COLOR: #000000">{ <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        va_list argList; <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        U16 oldcolor; <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        HANDLE hCon</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">GetStdHandle(STD_OUTPUT_HANDLE); <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        CONSOLE_SCREEN_BUFFER_INFO bInfo; <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        GetConsoleScreenBufferInfo(hCon, </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">bInfo ); <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        oldcolor </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> bInfo.wAttributes;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(oldcolor</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">color)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            SetConsoleTextAttribute(hCon,color); <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>#ifdef _UNICODE<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        _tsetlocale(LC_CTYPE,TEXT(</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">));<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">#endif</span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        va_start( argList, format ); <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        _tprintf( format,argList); <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        va_end( argList );<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>#ifdef _UNICODE<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        _tsetlocale(LC_CTYPE,TEXT(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">C</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">#endif</span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(oldcolor</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">color)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            SetConsoleTextAttribute(hCon,color);  <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"> <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span></div> <br> <img src ="http://m.shnenglu.com/Leaf/aggbug/124041.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2010-08-20 01:00 <a href="http://m.shnenglu.com/Leaf/archive/2010/08/20/124041.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀛楃杈撳嚭涓庣紪鐮侀泦鐨勯棶棰樸?http://m.shnenglu.com/Leaf/archive/2010/08/19/123908.htmlRender DonkeyRender DonkeyWed, 18 Aug 2010 17:19:00 GMThttp://m.shnenglu.com/Leaf/archive/2010/08/19/123908.htmlhttp://m.shnenglu.com/Leaf/comments/123908.htmlhttp://m.shnenglu.com/Leaf/archive/2010/08/19/123908.html#Feedback0http://m.shnenglu.com/Leaf/comments/commentRss/123908.htmlhttp://m.shnenglu.com/Leaf/services/trackbacks/123908.html銆銆鏅氫笂鍥炴潵緇х畫(huà)瀹屽杽鏃╀笂鐨勫伐浣滐紝灝哃og杈撳嚭鍋氭垚浜?jiǎn)鍙互閲嶅畾鍚戠殑灞倠啤缁撴瀯锛岒q舵斁鍏ヤ簡(jiǎn)涓涓彲浠ュ叡浜殑Share鍔ㄦ佸簱涓傝繖鏍峰氨鍙互淇濇寔Log杈撳嚭緋葷粺鐨勫敮涓鍜屽叡浜紙闈?rùn)鎬丩ib涓叡鏃犳硶鍏變韓錛?
      鐢ㄧ櫨搴︽悳浜?jiǎn)涓涓嬭繖涓緭鍑洪棶棰橈紝紿佺劧鍙戠幇浜?jiǎn)鍏朵腑濂ュ锛屽師鏉nicode闇瑕佹湰鍦板寲淇℃伅銆?br>銆銆緇忔祴璇曞彂鐜頒簡(jiǎn)濡備笅瑙勫緥
/*
  銆銆銆 C澶?nbsp;銆CU 銆銆闈濩澶?銆闈濩U
stdio 銆銆 1 銆銆0 銆銆銆1  銆銆銆1
iostream銆 1銆銆 1 銆銆銆0 銆銆銆 0


鍙互寰楀嚭
錛戙佸湪澶氬瓧鑺傛椂錛岄粯璁?C錛夐鏍間笅錛屼簩鑰呴兘鑳借緭鍑轟腑鏂囥?br>錛掋佸湪澶氬瓧鑺傛椂錛岄潪C椋庢牸涓嬶紝cout涓嶈兘杈撳嚭涓枃
錛撱佸湪U鏃訛紝榛樿C椋庢牸涓嬶紝print涓嶈兘杈撳嚭涓枃
錛斻佸湪U鏃訛紝闈濩椋庢牸涓嬶紝cout涓嶈兘杈撳嚭涓枃


鐢辨鍙煡錛岃鍦–椋庢牸涓嬶紝iostream鎵嶈兘杈撳嚭涓枃銆?br>鑰宲rintf鍙湁鍦–椋庢牸鐨刄nicode涓嬫墠涓嶈兘杈撳嚭涓枃錛屽叾瀹冨潎鍙?/font>
*/

嫻嬭瘯浠g爜濡備笅
#include <iostream>
#include <tchar.h>
#include <locale>
int _tmain(int argc, _TCHAR* argv[])
{
#ifdef _UNICODE
 _tsetlocale(LC_CTYPE,TEXT(""));
#endif
 _tprintf(TEXT("a鍦ㄥ摢閲屽晩\n"));
#ifdef _UNICODE
 _tsetlocale(LC_CTYPE,TEXT("C"));
#endif


#ifdef _UNICODE
 std::wcout<<"d鍦ㄥ摢閲屽晩"<<std::endl;
#else
 std::cout<<"d鍦ㄥ摢閲屽晩"<<std::endl;
#endif
 getchar();
 return 0;
}


]]>
鍙戝嚑涓嚜宸卞仛鐨勪笢瑗?/title><link>http://m.shnenglu.com/Leaf/archive/2010/06/20/118321.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Sun, 20 Jun 2010 14:04:00 GMT</pubDate><guid>http://m.shnenglu.com/Leaf/archive/2010/06/20/118321.html</guid><wfw:comment>http://m.shnenglu.com/Leaf/comments/118321.html</wfw:comment><comments>http://m.shnenglu.com/Leaf/archive/2010/06/20/118321.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://m.shnenglu.com/Leaf/comments/commentRss/118321.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Leaf/services/trackbacks/118321.html</trackback:ping><description><![CDATA[     鎽樿: 鏈澶х殑閬楁喚鑾繃浜庡ぇ瀛﹂噷娌″仛榪囧暐鍍忔牱鐨勪笢瑗匡紝璁稿涓滆タ閮界儌鍦ㄤ簡(jiǎn)瀛︽牎閭g牬紜洏閲岋紝灝辮繖鐐逛簡(jiǎn)錛屾湁闇瑕佺殑鍙互涓嬭澆銆?<br>浠g爜鍐欏緱寰堢儌錛屼笉鏄漢璇葷殑銆備笉榪囪兘緙栬瘧閫氾紝鑳芥墽琛屻?<br> <br>鍏朵腑涓夌淮妯″瀷瀵煎叆鏄敤OPENGL+GLUT+VS 2005 <br>澧欎腑鍏富鍜?D璐铔囨槸鐢ㄧ殑D3DAPI+VC6.0  <a href='http://m.shnenglu.com/Leaf/archive/2010/06/20/118321.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/Leaf/aggbug/118321.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2010-06-20 22:04 <a href="http://m.shnenglu.com/Leaf/archive/2010/06/20/118321.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏀跺綍錛歏C璋冭瘯鎶宸?/title><link>http://m.shnenglu.com/Leaf/archive/2010/05/24/116244.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Mon, 24 May 2010 11:54:00 GMT</pubDate><guid>http://m.shnenglu.com/Leaf/archive/2010/05/24/116244.html</guid><wfw:comment>http://m.shnenglu.com/Leaf/comments/116244.html</wfw:comment><comments>http://m.shnenglu.com/Leaf/archive/2010/05/24/116244.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/Leaf/comments/commentRss/116244.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Leaf/services/trackbacks/116244.html</trackback:ping><description><![CDATA[     鎽樿: 璋冭瘯鏄竴涓▼搴忓憳鏈鍩烘湰鐨勬妧鑳斤紝鍏墮噸瑕佹х敋鑷寵秴榪囧涔?fàn)涓闂ㄨ璦銆備笉浼?xì)璋冭瘯鐨劷E嬪簭鍛樺氨鎰忓懗鐫浠栧嵆浣夸細(xì)涓闂ㄨ璦錛屽嵈涓嶈兘緙栧埗鍑轟換浣曞ソ鐨勮蔣浠躲?<br> <br>榪欓噷鎴戠畝瑕佺殑鏍規(guī)嵁鑷繁鐨勭粡楠屽垪鍑?guó)櫚冭瘯涓瘮杈冨父鐢ㄧ殑鎶宸э紝甯屾湜瀵瑰ぇ瀹舵湁鐢ㄣ?nbsp; <a href='http://m.shnenglu.com/Leaf/archive/2010/05/24/116244.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/Leaf/aggbug/116244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2010-05-24 19:54 <a href="http://m.shnenglu.com/Leaf/archive/2010/05/24/116244.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍙戝嚑閬撳叧浜嶤++鍩虹鐭ヨ瘑鐨勯錛岃兘涓嶈兘鍋氳嚜宸辨竻妤氬氨琛屻?/title><link>http://m.shnenglu.com/Leaf/archive/2010/05/11/115067.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Tue, 11 May 2010 00:52:00 GMT</pubDate><guid>http://m.shnenglu.com/Leaf/archive/2010/05/11/115067.html</guid><wfw:comment>http://m.shnenglu.com/Leaf/comments/115067.html</wfw:comment><comments>http://m.shnenglu.com/Leaf/archive/2010/05/11/115067.html#Feedback</comments><slash:comments>31</slash:comments><wfw:commentRss>http://m.shnenglu.com/Leaf/comments/commentRss/115067.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Leaf/services/trackbacks/115067.html</trackback:ping><description><![CDATA[     鎽樿: 涓嬮潰榪欎簺鏄熀紜棰橈紝鈥滈珮鎵嬧濅滑椋樿繃錛侊紒錛?<br>鎴戞兂涓鑸叕鍙稿璇█鏂歸潰錛屾諱細(xì)鍙樼潃鏂規(guī)硶鑰冧笅闈㈢殑榪欎簺闂銆傝繖鍙槸鍑虹幇鐨勪竴縐嶅艦寮忋傛湁鍟ュソ棰樻榪庡ぇ瀹跺垎浜紝涓嬮潰榪欎簺鏄垜鑷繁YY鐨勩傜湅棰樼殑鍏勫紵鍙渶鍦ㄨ嚜宸卞績(jī)閲屼綔絳斿氨琛岋紝涓瀹氫笉瑕佸繕?shù)簡(jiǎn)鍑犱箮姣忛閮芥湁涓涓?涓轟粈涔堚濄?<br>  <a href='http://m.shnenglu.com/Leaf/archive/2010/05/11/115067.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/Leaf/aggbug/115067.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2010-05-11 08:52 <a href="http://m.shnenglu.com/Leaf/archive/2010/05/11/115067.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璁ㄨ浼?xì)缁撹?/title><link>http://m.shnenglu.com/Leaf/archive/2010/05/09/114942.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Sun, 09 May 2010 11:38:00 GMT</pubDate><guid>http://m.shnenglu.com/Leaf/archive/2010/05/09/114942.html</guid><wfw:comment>http://m.shnenglu.com/Leaf/comments/114942.html</wfw:comment><comments>http://m.shnenglu.com/Leaf/archive/2010/05/09/114942.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.shnenglu.com/Leaf/comments/commentRss/114942.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Leaf/services/trackbacks/114942.html</trackback:ping><description><![CDATA[     鎽樿: 鍓嶅嚑澶╁彂浜?jiǎn)涓綃囧叧浜庝竴涓紦鍐插尯婧㈠嚭闂鐨勮璁恒傚綋鐒舵槸楗卞彈闈炴剰銆傛湁浜鴻榪欐槸鎾炲ぇ榪愶紝鏈変漢璇磋繖鏄棤鑱娿備絾鏄憿錛屼粠璁ㄨ涓紝鎴戜滑鍙戠幇浜?jiǎn)鏇村鐨勯棶棰樸傚鍒頒簡(jiǎn)鏇村鐨勭煡璇嗐?鍏跺疄璁稿鏃跺欐垜浠湁蹇呰鈥滄挒澶ц繍鈥濓紝浣嗘槸鍦ㄦ挒澶ц繍鍑洪棶棰樹(shù)箣鍚庯紝涓瀹氳寮勬竻妤氫簨鎯呯殑鍘熷洜銆?鍗氬弸鐨勫洖澶嶅凡緇忓厖鍒嗚鏄庝簡(jiǎn)褰撴椂鐨勯棶棰樸?浣嗘槸鎻愬嚭浜?jiǎn)涓涓柊闂錛氬氨鏄復(fù)鏃跺彉閲忓垎閰嶆椂鐨勭┖闂撮棶棰樸?<br>姣斿璇存湁鍒嗚繛緇垎閰嶄簡(jiǎn)3涓復(fù)鏃跺彉閲忥紝鍗村彂鐜拌繖3涓復(fù)鏃跺彉閲忕殑鍧鍧涓嶆槸鎸夊彉閲忓ぇ灝忚繛緇傦紙濡備袱涓狪NT鍙橀噺闂寸浉宸槸12錛岃岄潪棰勬湡鐨?錛?鍙堟垨鑰呭悗澹版槑鐨勫彉閲忓湴鍧鍗磋窇鍦ㄤ簡(jiǎn)鍓嶅ご錛夈? <br>  <a href='http://m.shnenglu.com/Leaf/archive/2010/05/09/114942.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/Leaf/aggbug/114942.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2010-05-09 19:38 <a href="http://m.shnenglu.com/Leaf/archive/2010/05/09/114942.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璁ㄨ浼?xì)锛?xì)涓涓笉鏄棶棰樼殑闂!http://m.shnenglu.com/Leaf/archive/2010/05/06/114596.htmlRender DonkeyRender DonkeyThu, 06 May 2010 04:41:00 GMThttp://m.shnenglu.com/Leaf/archive/2010/05/06/114596.htmlhttp://m.shnenglu.com/Leaf/comments/114596.htmlhttp://m.shnenglu.com/Leaf/archive/2010/05/06/114596.html#Feedback38http://m.shnenglu.com/Leaf/comments/commentRss/114596.htmlhttp://m.shnenglu.com/Leaf/services/trackbacks/114596.html

涓嶇煡閬撳悇浣嶆湁浣曢珮瑙侊紒
鎴戝績(jī)涓篃鏈変竴涓瓟妗堛備絾鍏堜笉璇達(dá)紝澶у涓璧鋒潵璁ㄨ銆傘傘?鍏卞悓瀹屾垚榪欑瘒璐村瓙銆?闅忓悗錛屽ぇ瀹剁殑楂樼鍥炲浼?xì)浠ュ涓嬫柟寮忓嚭鐜?
濡傛灉涓嶅笇鏈涙渶鍚庡嚭鐜板湪榪欓噷錛岃澶у娉ㄦ槑銆?榛樿鎯呭喌涓嬶紝琛ㄧず鍚屾剰錛?

ID錛歑XXX
瑙i噴錛?****************


=======================
ID錛歑XXXX
瑙i噴錛?*******************  闃呰鍏ㄦ枃

]]>
[鍘焆娣卞叆璁茶В鍑芥暟涓垎閰嶅唴瀛橀棶棰?/title><link>http://m.shnenglu.com/Leaf/archive/2010/05/05/114425.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Wed, 05 May 2010 01:02:00 GMT</pubDate><guid>http://m.shnenglu.com/Leaf/archive/2010/05/05/114425.html</guid><wfw:comment>http://m.shnenglu.com/Leaf/comments/114425.html</wfw:comment><comments>http://m.shnenglu.com/Leaf/archive/2010/05/05/114425.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://m.shnenglu.com/Leaf/comments/commentRss/114425.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Leaf/services/trackbacks/114425.html</trackback:ping><description><![CDATA[     鎽樿: 寮濮嬪啓浜?jiǎn)涓綃囷紝閫氳繃璇存槑浠栦滑浜х敓浜?jiǎn)鎷疯礉锛岃屽鑷磒涓嶈兘鎴愬姛鍒嗛厤銆備絾騫舵湭鎻愬嚭浜嬪疄鏍規(guī)嵁錛屼笅闈㈡垜浠潵浠旂粏鐪嬬湅鍏蜂綋鍘熷洜銆?<br> <br>鎴戜滑闇瑕佸紕娓呬袱鐐癸細(xì)1銆乵ain鍑芥暟涓殑p涓嶮yNew鍑芥暟涓殑p鏄笉鏄竴鏍鳳紱2銆佸鏋滀笉涓鏍鳳紝鏄庝箞瀵艱嚧浜?jiǎn)涓嶄竴鏍風(fēng)殑銆?<br>  <a href='http://m.shnenglu.com/Leaf/archive/2010/05/05/114425.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/Leaf/aggbug/114425.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2010-05-05 09:02 <a href="http://m.shnenglu.com/Leaf/archive/2010/05/05/114425.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍐掓場(chǎng)鎺掑簭涓庨夋嫨鎺掑簭鐨勪笉鍚屻佸揩閫熸帓搴忎笌閫夋嫨鎺掑簭鐨勭粨鍚?/title><link>http://m.shnenglu.com/Leaf/archive/2010/05/04/114393.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Tue, 04 May 2010 15:44:00 GMT</pubDate><guid>http://m.shnenglu.com/Leaf/archive/2010/05/04/114393.html</guid><wfw:comment>http://m.shnenglu.com/Leaf/comments/114393.html</wfw:comment><comments>http://m.shnenglu.com/Leaf/archive/2010/05/04/114393.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.shnenglu.com/Leaf/comments/commentRss/114393.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Leaf/services/trackbacks/114393.html</trackback:ping><description><![CDATA[     鎽樿: 鐩墠騫夸負(fù)浣跨敤鐨勫揩閫熸帓搴忓拰閫夋嫨鎺掑簭鑱斿悎浣跨敤錛屼篃浼?xì)鏈夋剰鎯充笉鍒扮殑鎻愬崌锛?<br>浼楁墍鍛ㄧ煡錛屽綋鐢ㄥ揩閫熸帓搴忔硶鎺掑簭鏃訛紝鍒掑垎鍒板緢緇嗙殑鏃跺欙紝鏄庢樉寰堜簭銆?姣斿錛氫袱涓変釜鏁版帓搴忓嵈瑕佸垝鍒嗘垚涓ゅ爢錛岃繖鏍峰緢鍒掍笉鏉ャ傛墍浠ワ紝鎴戜滑鍙互璁懼畾涓涓榾鍊鹼紝褰撳揩閫熸帓搴忓垝鍒嗗埌涓瀹氱矑搴︾殑鏃跺欙紝渚塊噰鐢ㄩ夋嫨鎺掑簭銆?鑷充簬榪欎釜闃鍊鹼紝鍙互閫氳繃performace鏉ユ祴璇曪紝浠ュ緱鍒頒竴涓滄渶浼樺尖?<br> <br>  <a href='http://m.shnenglu.com/Leaf/archive/2010/05/04/114393.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/Leaf/aggbug/114393.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2010-05-04 23:44 <a href="http://m.shnenglu.com/Leaf/archive/2010/05/04/114393.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏌愬唴瀛樻睜涓殑鎸囬拡鐢ㄦ硶 http://m.shnenglu.com/Leaf/archive/2010/05/03/114263.htmlRender DonkeyRender DonkeyMon, 03 May 2010 10:33:00 GMThttp://m.shnenglu.com/Leaf/archive/2010/05/03/114263.htmlhttp://m.shnenglu.com/Leaf/comments/114263.htmlhttp://m.shnenglu.com/Leaf/archive/2010/05/03/114263.html#Feedback11http://m.shnenglu.com/Leaf/comments/commentRss/114263.htmlhttp://m.shnenglu.com/Leaf/services/trackbacks/114263.html鍐呭瓨姹犲疄鐜版湁璁稿縐嶏紝鍚勬湁涓嶅悓鐨勪紭緙虹偣銆?/p>

榪欓噷涓嶆槸涓昏璇村唴瀛樻睜錛屽彧鏄寰楄繖涓唴瀛樻睜涓殑鎸囬拡鐢ㄥ緱寰堥閫革紒

 

 1template <class T,int AllocSize = 50>   
 2class MemPool   
 3{   
 4public:   
 5    static void* operator new(size_t allocLength)   
 6    {   
 7        if(!mStartPotinter)   
 8        {   
 9            MyAlloc();   
10        }
   
11        //灝嗗綋鍓嶆寚鍚戠┖闂插唴瀛樿搗濮嬪湴鍧浣滀負(fù)鍙嶅洖鍦板潃   
12        unsigned char* p = mStartPotinter;   
13        //鍙栧嚭絀洪棽鍖哄煙鍓?瀛楄妭鐨勫鹼紝璧嬪肩粰絀洪棽鍦板潃   
14        //鍥犱負(fù)鍓嶅洓瀛楄妭涓瓨鏀句簡(jiǎn)涓嬩竴涓狟LOCK鐨勫湴鍧   
15        mStartPotinter = *(unsigned char**)mStartPotinter;   
16        return p;   
17    }
   
18  
19    static void operator delete(void* deleteP)   
20    {   
21//      assert(deletePointer);   
22        *(unsigned char**)deleteP = mStartPotinter;   
23        mStartPotinter = (unsigned char*)deleteP;   
24    }
   
25  
26    static void MyAlloc()   
27    {   
28        //棰勫垎閰嶅唴瀛?nbsp;  
29        mStartPotinter = new unsigned char[sizeof(T)*AllocSize];   
30        //鏋勯燘LOCK涔嬮棿鐨勫叧緋?nbsp;   
31        //姣忎釜BLOCK鐨勫墠4BYTE瀛樻斁浜?jiǎn)涓嬩竴涓狟LOCK鐨勫湴鍧   
32        unsigned char** next = (unsigned char**)mStartPotinter;   
33        unsigned char* p = mStartPotinter;   
34  
35        for(int i = 0; i< AllocSize;++i)   
36        {   
37            p +=sizeof(T);//姝ヨ繘   
38            *next = p;//璧嬪?nbsp;  
39            next = (unsigned char**)p;//姝ヨ繘   
40        }
   
41        *next = NULL;   
42    }
   
43  
44    static unsigned char* mStartPotinter;   
45}
;   
46  
47template <class T,int AllocSize>   
48unsigned char* MemPool<T,AllocSize>::mStartPotinter = NULL;  
49
50
51鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛歨ttp://blog.csdn.net/wqjqepr/archive/2010/05/03/5552322.aspx

 

 

綆鍗曟彁紺轟竴涓嬶細(xì) unsigned char** next = (unsigned char**)mStartPotinter;

mStartPotinter浣滀負(fù)浜岀淮鎸囬拡鐨勬椂鍊欙紝鐩稿綋浜庢槸涓緋誨垪鐨剈nsigned char* [].

瀵逛簬絎竴涓?*next 鐩稿綋浜?unsigned char*)mStartPointer[0].

絎簩涓浉褰撲簬(unsigned char*)mStartPointer[sizeof(T)*1];

絎笁涓浉褰撲簬(unsigned char*)mStartPointer[sizeof(T)*2];

鎵浠ワ紝鏋勯燘LOCK涔嬮棿鍏崇郴鐨勬椂鍊欙紝涔熷彲浠ュ啓鎴?/p>

 

1for(int i = 0; i< AllocSize;++i)   
2{   
3 p +=sizeof(T);//姝ヨ繘   
4 unsigned char* pp = (unsigned char*)(p[sizeof(T)*i]);   
5 pp = p;//璧嬪?nbsp;  
6}
 

 

 

涓嶆兂澶氳В閲婁簡(jiǎn)錛岀瘡銆備及璁″鐪嬪嚑鍒嗙鍟ラ兘鏄庣櫧浜?jiǎn)锛?/p>

 

 



]]>
[杞琞C++ 瀵硅薄鐨勫唴瀛樺竷灞http://m.shnenglu.com/Leaf/archive/2010/04/27/113740.htmlRender DonkeyRender DonkeyTue, 27 Apr 2010 12:56:00 GMThttp://m.shnenglu.com/Leaf/archive/2010/04/27/113740.htmlhttp://m.shnenglu.com/Leaf/comments/113740.htmlhttp://m.shnenglu.com/Leaf/archive/2010/04/27/113740.html#Feedback5http://m.shnenglu.com/Leaf/comments/commentRss/113740.htmlhttp://m.shnenglu.com/Leaf/services/trackbacks/113740.html璁茶堪浜?jiǎn)C++瀵硅薄鍦ㄤ互涓嬫儏鍐電殑鍐呭瓨甯冨眬銆傚煎緱涓鐪嬶紒
1錛夋湁鎴愬憳鍙橀噺鐨勬儏鍐點(diǎn)?

2錛夋湁閲嶅緇ф壙鐨勬儏鍐點(diǎn)?

3錛夋湁铏氭嫙緇ф壙鐨勬儏鍐點(diǎn)?

4錛夋湁閽葷煶鍨嬭櫄鎷熺戶鎵跨殑鎯呭喌銆?

榪樻湁錛屽浜庡墠鍑犲ぉ鐨勮創(chuàng)瀛愯〃紺烘姤姝夛紝浠婂ぉ鏄洿鎺ヨ創(chuàng)鍒拌繖閲岀殑銆?娌′貢鐮侊紝榪樺ソ錛侊紒錛?nbsp; 闃呰鍏ㄦ枃

]]>
c++铏氬嚱鏁拌〃鎺㈢┒http://m.shnenglu.com/Leaf/archive/2009/07/24/91095.htmlRender DonkeyRender DonkeyFri, 24 Jul 2009 15:52:00 GMThttp://m.shnenglu.com/Leaf/archive/2009/07/24/91095.htmlhttp://m.shnenglu.com/Leaf/comments/91095.htmlhttp://m.shnenglu.com/Leaf/archive/2009/07/24/91095.html#Feedback0http://m.shnenglu.com/Leaf/comments/commentRss/91095.htmlhttp://m.shnenglu.com/Leaf/services/trackbacks/91095.htmlC++涓殑铏氬嚱鏁扮殑浣滅敤涓昏鏄疄鐜頒簡(jiǎn)澶氭佺殑鏈哄埗銆傚叧浜庡鎬侊紝綆鑰岃█涔嬪氨鏄敤鐖剁被鍨嬪埆鐨勬寚閽堟寚鍚戝叾瀛愮被鐨勫疄渚嬶紝鐒跺悗閫氳繃鐖剁被鐨勬寚閽堣皟鐢ㄥ疄闄呭瓙綾葷殑鎴愬憳鍑芥暟銆傝繖縐嶆妧鏈彲浠ヨ鐖剁被鐨勬寚閽堟湁“澶氱褰㈡?#8221;錛岃繖鏄竴縐嶆硾鍨嬫妧鏈傛墍璋撴硾鍨嬫妧鏈紝璇寸櫧浜?jiǎn)灏辨槸璇曞浘鋴社敤涓嶅彉鐨勪唬鐮佹潵瀹炵幇鍙彉鐨劷帡娉曘傛瘮濡傦細(xì)妯℃澘鎶鏈紝RTTI鎶鏈紝铏氬嚱鏁版妧鏈紝瑕佷箞鏄瘯鍥懼仛鍒板湪緙栬瘧鏃跺喅璁紝瑕佷箞璇曞浘鍋氬埌榪愯鏃跺喅璁?
鍏充簬铏氬嚱鏁扮殑浣跨敤鏂規(guī)硶錛屾垜鍦ㄨ繖閲屼笉鍋氳繃澶氱殑闃愯堪銆傚ぇ瀹跺彲浠ョ湅鐪嬬浉鍏崇殑C++鐨勪功綾嶃傚湪榪欑瘒鏂囩珷涓紝鎴戝彧鎯充粠铏氬嚱鏁扮殑瀹炵幇鏈哄埗涓婇潰涓哄ぇ瀹?涓涓竻鏅扮殑鍓栨瀽銆?
褰撶劧錛岀浉鍚岀殑鏂囩珷鍦ㄧ綉涓婁篃鍑虹幇榪囦竴浜涗簡(jiǎn)錛屼絾鎴戞繪劅瑙夎繖浜涙枃绔犱笉鏄緢瀹規(guī)槗闃呰錛屽ぇ孌靛ぇ孌電殑浠g爜錛屾病鏈夊浘鐗囷紝娌℃湁璇︾粏鐨勮鏄庯紝娌℃湁姣旇緝錛屾病鏈変婦涓鍙嶄笁銆備笉鍒╀簬瀛︿範(fàn)鍜岄槄璇伙紝鎵浠ヨ繖鏄垜鎯沖啓涓嬭繖綃囨枃绔犵殑鍘熷洜銆備篃甯屾湜澶у澶氱粰鎴戞彁鎰忚銆?
璦褰掓浼狅紝璁╂垜浠竴璧瘋繘鍏ヨ櫄鍑芥暟鐨勪笘鐣屻?
铏氬嚱鏁拌〃
瀵笴++ 浜?jiǎn)瑙g殑錆h閮藉簲璇ョ煡閬撹櫄鍑芥暟錛圴irtual Function錛夋槸閫氳繃涓寮犺櫄鍑芥暟琛紙Virtual Table錛夋潵瀹炵幇鐨勩傜畝縐頒負(fù)V-Table銆?鍦ㄨ繖涓〃涓紝涓繪槸瑕佷竴涓被鐨勮櫄鍑芥暟鐨勫湴鍧琛紝榪欏紶琛ㄨВ鍐充簡(jiǎn)緇ф壙銆佽鐩栫殑闂錛屼繚璇佸叾瀹圭湡瀹炲弽搴斿疄闄呯殑鍑芥暟銆傝繖鏍鳳紝鍦ㄦ湁铏氬嚱鏁扮殑綾葷殑瀹炰緥涓繖涓〃琚垎閰嶅湪浜?榪欎釜瀹炰緥鐨勫唴瀛樹(shù)腑錛屾墍浠ワ紝褰撴垜浠敤鐖剁被鐨勬寚閽堟潵鎿嶄綔涓涓瓙綾葷殑鏃跺欙紝榪欏紶铏氬嚱鏁拌〃灝辨樉寰楃敱涓洪噸瑕佷簡(jiǎn)錛屽畠?yōu)鍍忎竴涓湴鍥句竴鏍鳳紝鎸囨槑浜?jiǎn)瀹為檯鎵搴旇璋冪敤鐨勫嚱鏁般?
榪欓噷鎴戜滑鐫閲嶇湅涓涓嬭繖寮犺櫄鍑芥暟琛ㄣ傚湪C++鐨勬爣鍑嗚鏍艱鏄庝功涓鍒幫紝緙栬瘧鍣ㄥ繀闇瑕佷繚璇佽櫄鍑芥暟琛ㄧ殑鎸囬拡瀛樺湪浜庡璞″疄渚嬩腑鏈鍓嶉潰鐨勪綅緗紙榪欐槸涓轟簡(jiǎn)淇濊瘉姝g‘鍙栧埌铏氬嚱鏁扮殑鍋忕Щ閲忥級(jí)銆?榪欐剰鍛崇潃鎴戜滑閫氳繃瀵硅薄瀹炰緥鐨勫湴鍧寰楀埌榪欏紶铏氬嚱鏁拌〃錛岀劧鍚庡氨鍙互閬嶅巻鍏朵腑鍑芥暟鎸囬拡錛屽茍璋冪敤鐩稿簲鐨勫嚱鏁般?
鍚垜鎵簡(jiǎn)閭d箞澶氾紝鎴戝彲浠ユ劅瑙夊嚭鏉ヤ綘鐜板湪鍙兘姣斾互鍓嶆洿鍔犳檿澶磋漿鍚戜簡(jiǎn)銆?娌″叧緋伙紝涓嬮潰灝辨槸瀹為檯鐨勪緥瀛愶紝鐩鎬俊鑱槑鐨勪綘涓鐪嬪氨鏄庣櫧浜?jiǎn)銆?
鍋囪鎴戜滑鏈夎繖鏍風(fēng)殑涓涓被錛?
class Base {
public:
virtual void f() { cout << "Base::f" << endl; }
virtual void g() { cout << "Base::g" << endl; }
virtual void h() { cout << "Base::h" << endl; }
};
鎸夌収涓婇潰鐨勮娉曪紝鎴戜滑鍙互閫氳繃Base鐨勫疄渚嬫潵寰楀埌铏氬嚱鏁拌〃銆?涓嬮潰鏄疄闄呬緥紼嬶細(xì)
typedef void(*Fun)(void);
Base b;
Fun pFun = NULL;
cout << "铏氬嚱鏁拌〃鍦板潃錛? << (int*)(&b) << endl;
cout << "铏氬嚱鏁拌〃 鈥?絎竴涓嚱鏁板湴鍧錛? << (int*)*(int*)(&b) << endl;
// Invoke the first virtual function
pFun = (Fun)*((int*)*(int*)(&b));
pFun();
瀹為檯榪愯緇忔灉濡備笅錛?Windows XP+VS2003, Linux 2.6.22 + GCC 4.1.3)
铏氬嚱鏁拌〃鍦板潃錛?012FED4
铏氬嚱鏁拌〃 鈥?絎竴涓嚱鏁板湴鍧錛?044F148
Base::f
閫氳繃榪欎釜紺轟緥錛屾垜浠彲浠ョ湅鍒幫紝鎴戜滑鍙互閫氳繃寮鴻鎶?amp;b杞垚int *錛屽彇寰楄櫄鍑芥暟琛ㄧ殑鍦板潃錛岀劧鍚庯紝鍐嶆鍙栧潃灝卞彲浠ュ緱鍒扮涓涓櫄鍑芥暟鐨勫湴鍧浜?jiǎn)锛屼篃灏辨槸Base::f()錛岃繖鍦ㄤ笂闈㈢殑紼嬪簭涓緱鍒頒簡(jiǎn)楠岃瘉錛堟妸int* 寮哄埗杞垚浜?jiǎn)鍑芥暟鎸囬拡锛?jí)銆傞氳繃榪欎釜紺轟緥錛屾垜浠氨鍙互鐭ラ亾濡傛灉瑕佽皟鐢˙ase::g()鍜孊ase::h()錛屽叾浠g爜濡備笅錛?
(Fun)*((int*)*(int*)(&b)+0); // Base::f()
(Fun)*((int*)*(int*)(&b)+1); // Base::g()
(Fun)*((int*)*(int*)(&b)+2); // Base::h()
榪欎釜鏃跺欎綘搴旇鎳備簡(jiǎn)鍚с備粈涔堬紵榪樻槸鏈夌偣鏅曘備篃鏄紝榪欐牱鐨勪唬鐮佺湅鐫澶貢浜?jiǎn)銆傛病闂錛岃鎴戠敾涓浘瑙i噴涓涓嬨傚涓嬫墍紺猴細(xì)


娉ㄦ剰錛氬湪涓婇潰榪欎釜鍥句腑錛屾垜鍦ㄨ櫄鍑芥暟琛ㄧ殑鏈鍚庡鍔犱簡(jiǎn)涓涓粨鐐癸紝榪欐槸铏氬嚱鏁拌〃鐨勭粨鏉熺粨鐐癸紝灝卞儚瀛楃涓茬殑緇撴潫絎?#8220;\0”涓鏍鳳紝鍏舵爣蹇椾簡(jiǎn)铏氬嚱鏁拌〃鐨勭粨鏉熴傝繖涓粨鏉熸爣蹇楃殑鍊煎湪涓嶅悓鐨勭紪璇戝櫒涓嬫槸涓嶅悓鐨勩傚湪WinXP+VS2003涓嬶紝榪欎釜鍊兼槸NULL銆傝屽湪Ubuntu 7.10 + Linux 2.6.22 + GCC 4.1.3涓嬶紝榪欎釜鍊兼槸濡傛灉1錛岃〃紺鴻繕鏈変笅涓涓櫄鍑芥暟琛紝濡傛灉鍊兼槸0錛岃〃紺烘槸鏈鍚庝竴涓櫄鍑芥暟琛ㄣ?
涓嬮潰錛屾垜灝嗗垎鍒鏄?#8220;鏃犺鐩?#8221;鍜?#8220;鏈夎鐩?#8221;鏃剁殑铏氬嚱鏁拌〃鐨勬牱瀛愩傛病鏈夎鐩栫埗綾葷殑铏氬嚱鏁版槸姣棤鎰忎箟鐨勩傛垜涔嬫墍浠ヨ璁茶堪娌℃湁瑕嗙洊鐨勬儏鍐碉紝涓昏鐩殑鏄負(fù)浜?jiǎn)缁欎竴涓姣斻傚湪姣旇緝涔嬩笅錛屾垜浠彲浠ユ洿鍔犳竻妤氬湴鐭ラ亾鍏跺唴閮ㄧ殑鍏蜂綋瀹炵幇銆?
涓鑸戶鎵匡紙鏃犺櫄鍑芥暟瑕嗙洊錛?br>涓嬮潰錛屽啀璁╂垜浠潵鐪嬬湅緇ф壙鏃剁殑铏氬嚱鏁拌〃鏄粈涔堟牱鐨勩傚亣璁炬湁濡備笅鎵紺虹殑涓涓戶鎵垮叧緋伙細(xì)
 

璇鋒敞鎰忥紝鍦ㄨ繖涓戶鎵垮叧緋諱腑錛屽瓙綾繪病鏈夐噸杞戒換浣曠埗綾葷殑鍑芥暟銆傞偅涔堬紝鍦ㄦ淳鐢熺被鐨勫疄渚嬩腑錛屽叾铏氬嚱鏁拌〃濡備笅鎵紺猴細(xì)
瀵逛簬瀹炰緥錛欴erive d; 鐨勮櫄鍑芥暟琛ㄥ涓嬶細(xì)

 

 

鎴戜滑鍙互鐪嬪埌涓嬮潰鍑犵偣錛?
1錛夎櫄鍑芥暟鎸夌収鍏跺0鏄庨『搴忔斁浜庤〃涓?
2錛夌埗綾葷殑铏氬嚱鏁板湪瀛愮被鐨勮櫄鍑芥暟鍓嶉潰銆?
鎴戠浉淇¤仾鏄庣殑浣犱竴瀹氬彲浠ュ弬鑰冨墠闈㈢殑閭d釜紼嬪簭錛屾潵緙栧啓涓孌電▼搴忔潵楠岃瘉銆?
涓鑸戶鎵匡紙鏈夎櫄鍑芥暟瑕嗙洊錛?br>瑕嗙洊鐖剁被鐨勮櫄鍑芥暟鏄緢鏄劇劧鐨勪簨鎯咃紝涓嶇劧錛岃櫄鍑芥暟灝卞彉寰楁鏃犳剰涔夈備笅闈紝鎴戜滑鏉ョ湅涓涓嬶紝濡傛灉瀛愮被涓湁铏氬嚱鏁伴噸杞戒簡(jiǎn)鐖剁被鐨勮櫄鍑芥暟錛屼細(xì)鏄竴涓粈涔堟牱瀛愶紵鍋囪錛屾垜浠湁涓嬮潰榪欐牱鐨勪竴涓戶鎵垮叧緋匯?

涓轟簡(jiǎn)璁╁ぇ瀹剁湅鍒拌緇ф壙榪囧悗鐨勬晥鏋滐紝鍦ㄨ繖涓被鐨勮璁′腑錛屾垜鍙鐩栦簡(jiǎn)鐖剁被鐨勪竴涓嚱鏁幫細(xì)f()銆傞偅涔堬紝瀵逛簬媧劇敓綾葷殑瀹炰緥錛屽叾铏氬嚱鏁拌〃浼?xì)鏄笅闈㈢殑涓涓牱瀛愶細(xì)
 

鎴戜滑浠庤〃涓彲浠ョ湅鍒頒笅闈㈠嚑鐐癸紝
1錛夎鐩栫殑f()鍑芥暟琚斁鍒頒簡(jiǎn)铏氳〃涓師鏉ョ埗綾昏櫄鍑芥暟鐨勪綅緗?
2錛夋病鏈夎瑕嗙洊鐨勫嚱鏁頒緷鏃с?
榪欐牱錛屾垜浠氨鍙互鐪嬪埌瀵逛簬涓嬮潰榪欐牱鐨勭▼搴忥紝
Base *b = new Derive();
b->f();
鐢眀鎵鎸囩殑鍐呭瓨?shù)腑鐨勮櫄鍑芥暟琛ㄧ殑f()鐨勪綅緗凡緇忚Derive::f()鍑芥暟鍦板潃鎵鍙栦唬錛屼簬鏄湪瀹為檯璋冪敤鍙戠敓鏃訛紝鏄疍erive::f()琚皟鐢ㄤ簡(jiǎn)銆傝繖灝卞疄鐜頒簡(jiǎn)澶氭併?
澶氶噸緇ф壙錛堟棤铏氬嚱鏁拌鐩栵級(jí)
涓嬮潰錛屽啀璁╂垜浠潵鐪嬬湅澶氶噸緇ф壙涓殑鎯呭喌錛屽亣璁炬湁涓嬮潰榪欐牱涓涓被鐨勭戶鎵垮叧緋匯傛敞鎰忥細(xì)瀛愮被騫舵病鏈夎鐩栫埗綾葷殑鍑芥暟銆?


瀵逛簬瀛愮被瀹炰緥涓殑铏氬嚱鏁拌〃錛屾槸涓嬮潰榪欎釜鏍峰瓙錛?

 


鎴戜滑鍙互鐪嬪埌錛?
1錛?姣忎釜鐖剁被閮芥湁鑷繁鐨勮櫄琛ㄣ?
2錛?瀛愮被鐨勬垚鍛樺嚱鏁拌鏀懼埌浜?jiǎn)绗竴涓埗綾葷殑琛ㄤ腑銆傦紙鎵璋撶殑絎竴涓埗綾繪槸鎸夌収澹版槑欏哄簭鏉ュ垽鏂殑錛?
榪欐牱鍋氬氨鏄負(fù)浜?jiǎn)瑙e喅涓嶅悓鐨勭埗绫痪c誨瀷鐨勬寚閽堟寚鍚戝悓涓涓瓙綾誨疄渚嬶紝鑰岃兘澶熻皟鐢ㄥ埌瀹為檯鐨勫嚱鏁般?
澶氶噸緇ф壙錛堟湁铏氬嚱鏁拌鐩栵級(jí)
涓嬮潰鎴戜滑鍐嶆潵鐪嬬湅錛屽鏋滃彂鐢熻櫄鍑芥暟瑕嗙洊鐨勬儏鍐點(diǎn)?
涓嬪浘涓紝鎴戜滑鍦ㄥ瓙綾諱腑瑕嗙洊浜?jiǎn)鐖毒c葷殑f()鍑芥暟銆?

涓嬮潰鏄浜庡瓙綾誨疄渚嬩腑鐨勮櫄鍑芥暟琛ㄧ殑鍥撅細(xì)
 

鎴戜滑鍙互鐪嬭錛屼笁涓埗綾昏櫄鍑芥暟琛ㄤ腑鐨刦()鐨勪綅緗鏇挎崲鎴愪簡(jiǎn)瀛愮被鐨勫嚱鏁版寚閽堛傝繖鏍鳳紝鎴戜滑灝卞彲浠ヤ換涓闈?rùn)鎬佺被鍨嬬殑鐖剁被鏉ユ寚鍚戝瓙綾伙紝騫惰皟鐢ㄥ瓙綾葷殑f()浜?jiǎn)銆傚錛?
Derive d;
Base1 *b1 = &d;
Base2 *b2 = &d;
Base3 *b3 = &d;
b1->f(); //Derive::f()
b2->f(); //Derive::f()
b3->f(); //Derive::f()
b1->g(); //Base1::g()
b2->g(); //Base2::g()
b3->g(); //Base3::g()
瀹夊叏鎬?br>姣忔鍐機(jī)++鐨勬枃绔狅紝鎬誨厤涓嶄簡(jiǎn)瑕佹壒鍒や竴涓婥++銆傝繖綃囨枃绔犱篃涓嶄緥澶栥傞氳繃涓婇潰鐨勮榪幫紝鐩鎬俊鎴戜滑瀵硅櫄鍑芥暟琛ㄦ湁涓涓瘮杈冪粏鑷寸殑浜?jiǎn)瑙d簡(jiǎn)銆傛按鍙澆鑸燂紝浜﹀彲瑕嗚垷銆備笅闈紝璁╂垜浠潵鐪嬬湅鎴戜滑鍙互鐢ㄨ櫄鍑芥暟琛ㄦ潵騫茬偣浠涔堝潖浜嬪惂銆?
涓銆侀氳繃鐖剁被鍨嬬殑鎸囬拡璁塊棶瀛愮被鑷繁鐨勮櫄鍑芥暟
鎴戜滑鐭ラ亾錛屽瓙綾繪病鏈夐噸杞界埗綾葷殑铏氬嚱鏁版槸涓浠舵鏃犳剰涔夌殑浜嬫儏銆傚洜涓哄鎬佷篃鏄鍩轟簬鍑芥暟閲嶈澆鐨勩傝櫧鐒跺湪涓婇潰鐨勫浘涓垜浠彲浠ョ湅鍒癇ase1鐨勮櫄琛ㄤ腑鏈塂erive鐨勮櫄鍑芥暟錛屼絾鎴戜滑鏍規(guī)湰涓嶅彲鑳戒嬌鐢ㄤ笅闈㈢殑璇彞鏉ヨ皟鐢ㄥ瓙綾葷殑鑷湁铏氬嚱鏁幫細(xì)
Base1 *b1 = new Derive();
b1->f1(); //緙栬瘧鍑洪敊
浠諱綍濡勫浘浣跨敤鐖剁被鎸囬拡鎯寵皟鐢ㄥ瓙綾諱腑鐨勬湭瑕嗙洊鐖剁被鐨勬垚鍛樺嚱鏁扮殑琛屼負(fù)閮戒細(xì)琚紪璇戝櫒瑙嗕負(fù)闈炴硶錛屾墍浠ワ紝榪欐牱鐨勭▼搴忔牴鏈棤娉曠紪璇戦氳繃銆備絾鍦ㄨ繍琛屾椂錛屾垜浠彲浠ラ氳繃鎸囬拡鐨勬柟寮忚闂櫄鍑芥暟琛ㄦ潵杈懼埌榪濆弽C++璇箟鐨勮涓恒傦紙鍏充簬榪欐柟闈㈢殑灝濊瘯錛岄氳繃闃呰鍚庨潰闄勫綍鐨勪唬鐮侊紝鐩鎬俊浣犲彲浠ュ仛鍒拌繖涓鐐癸級(jí)
浜屻佽闂畁on-public鐨勮櫄鍑芥暟
鍙﹀錛屽鏋滅埗綾葷殑铏氬嚱鏁版槸private鎴栨槸protected鐨勶紝浣嗚繖浜涢潪public鐨勮櫄鍑芥暟鍚屾牱浼?xì)瀛樺湪浜庤櫄鍑芥暟琛ㄤ腑锛屾墍浠ワ紝鎴戜滑鍚屾牱鍙互浣跨敤璁塊棶铏氬嚱鏁拌〃鐨勬柟寮忔潵璁塊棶榪欎簺non-public鐨勮櫄鍑芥暟錛岃繖鏄緢瀹規(guī)槗鍋氬埌鐨勩?
濡傦細(xì)
class Base {
private:
virtual void f() { cout << "Base::f" << endl; }
};
class Derive : public Base{
};
typedef void(*Fun)(void);
void main() {
Derive d;
Fun pFun = (Fun)*((int*)*(int*)(&d)+0);
pFun();
}



]]>
[杞琞 extern "C"http://m.shnenglu.com/Leaf/archive/2009/05/17/83229.htmlRender DonkeyRender DonkeySun, 17 May 2009 15:46:00 GMThttp://m.shnenglu.com/Leaf/archive/2009/05/17/83229.htmlhttp://m.shnenglu.com/Leaf/comments/83229.htmlhttp://m.shnenglu.com/Leaf/archive/2009/05/17/83229.html#Feedback0http://m.shnenglu.com/Leaf/comments/commentRss/83229.htmlhttp://m.shnenglu.com/Leaf/services/trackbacks/83229.html

鍓嶄簺澶╋紝緙栫▼搴忔槸鐢ㄥ埌浜?jiǎn)寰堜箙浠ュ墠鍐欑殑C紼嬪簭錛屾兂鎶婇噷闈㈢殑鍑芥暟鍒╃敤璧鋒潵錛岃繛鎺ュ彂鐜板嚭鐜頒簡(jiǎn)鎵句笉鍒板叿浣撳嚱鏁扮殑閿欒錛?/p>

浠ヤ笅鏄亣璁炬棫鐨凜紼嬪簭搴?/p>

C鐨勫ご鏂囦歡

/*-----------c.h--------------*/
#ifndef _C_H_
#define _C_H_
extern int add(int x, int y);
#endif

C鐨勬簮鏂囦歡

/*-----------c.c--------------*/
int
add(int x, int y){
return
x+y;
}

C++鐨勮皟鐢?/p>

/*-----------cpp.cpp--------------*/
#include "c.h"
void main()
{

add(1, 0);
}

榪欐牱緙栬瘧浼?xì)漶旂敓閿欒cpp.obj : error LNK2001: unresolved external symbol "int __cdecl add(int,int)" (?add@@YAHHH@Z)錛屽師鍥犳槸鎵句笉鍒癮dd鐨勭洰鏍囨ā鍧?/p>

榪欐墠浠ゆ垜鎯寵搗C++閲嶈澆鐨勫嚱鏁板懡鍚嶆柟寮忓拰C鍑芥暟鐨勫懡鍚嶆柟寮忥紝璁╂垜浠洖欏句竴涓嬶細(xì)C涓嚱鏁扮紪璇戝悗鍛藉悕浼?xì)鍦ㄥ嚱鏁板悕鍓嶅姞浠?_",姣斿add鍑芥暟緙栬瘧鎴恛bj鏂囦歡鏃剁殑瀹為檯鍛藉悕涓篲add錛岃宑++鍛藉悕鍒欎笉鍚岋紝涓轟簡(jiǎn)瀹炵幇鍑芥暟閲嶈澆鍚屾牱鐨勫嚱鏁板悕add鍥犲弬鏁扮殑涓嶅悓浼?xì)琚~栬瘧鎴愪笉鍚岀殑鍚嶅瓧

渚嬪

int add(int , int)==>add@@YAHHH@Z,

float add(float , float )==>add@@YAMMM@Z,

浠ヤ笂鏄疺C6鐨勫懡鍚嶆柟寮忥紝涓嶅悓鐨勭紪璇戝櫒浼?xì)涓嶅悓锛屾諱箣涓嶅悓鐨勫弬鏁板悓鏍風(fēng)殑鍑芥暟鍚嶅皢緙栬瘧鎴愪笉鍚岀洰鏍囧悕錛屼互渚夸簬鍑芥暟閲嶈澆鏄皟鐢ㄥ叿浣撶殑鍑芥暟銆?/p>

緙栬瘧cpp.cpp涓紪璇戝櫒鍦╟pp鏂囦歡涓彂鐜癮dd(1, 0);鐨勮皟鐢ㄨ屽嚱鏁板0鏄庝負(fù)extern int add(int x, int y);緙栬瘧鍣ㄥ氨鍐沖畾鍘繪壘add@@YAHHH@Z錛屽彲鎯滀粬鎵句笉鍒幫紝鍥犱負(fù)C鐨勬簮鏂囦歡鎶?font color=#990000>extern int add(int x, int y);緙栬瘧鎴恄add浜?jiǎn)锛?/font>

涓轟簡(jiǎn)瑙e喅榪欎釜闂C++閲囩敤浜?jiǎn)extern "C",榪欏氨鏄垜浠殑涓婚錛屾兂瑕佸埄鐢ㄤ互鍓嶇殑C紼嬪簭搴擄紝閭d箞浣犲氨瑕佸浼?xì)瀹冨Q屾垜浠彲浠ョ湅浠ヤ笅鏍囧噯澶存枃浠朵綘浼?xì)鍙戠帋图屽緢澶氬ご鏂囦粔檭芥湁浠ヤ笅鐨劸l撴瀯

#ifndef __H
#define __H
#ifdef __cplusplus
extern "C" {
#endif

extern
int f1(int, int);
extern
int f2(int, int);
extern
int f3(int, int);


#ifdef __cplusplus
}
#endif

#endif /*__H*/

濡傛灉鎴戜滑浠垮埗璇ュご鏂囦歡鍙互寰楀埌

#ifndef _C_H_
#define _C_H_
#ifdef __cplusplus
extern "C" {
#endif

extern
int add(int, int);

#ifdef __cplusplus
}
#endif

#endif /* _C_H_ */

榪欐牱緙栬瘧

/*-----------c.c--------------*/
int
add(int x, int y){
return
x+y;
}

榪欐椂婧愭枃浠朵負(fù)*.c錛?/font>__cplusplus娌℃湁琚畾涔夛紝extern "C" {}榪欐椂娌℃湁鐢熸晥瀵逛簬C浠栫湅鍒板彧鏄?font color=#990000>extern int add(int, int);
add鍑芥暟緙栬瘧鎴恄add(int, int);

鑰岀紪璇慶++婧愭枃浠?/font>

/*-----------cpp.cpp--------------*/
#include "c.h"
void main()
{

add(1, 0);
}

榪欐椂婧愭枃浠朵負(fù)*.cpp,__cplusplus琚畾涔?瀵逛簬C++浠栫湅鍒扮殑鏄?font color=#990000>extern "C" {extern int add(int, int);}緙栬瘧鍣ㄥ氨浼?xì)鐭ラ?add(1, 0);璋冪敤鐨凜椋庢牸鐨勫嚱鏁幫紝灝變細(xì)鐭ラ亾鍘籧.obj涓壘_add(int, int)鑰屼笉鏄?/strong>add@@YAHHH@Z錛?/font>

榪欎篃灝變負(fù)浠涔圖LL涓父鐪嬭extern "C" {}錛?/strong>windows鏄噰鐢–璇█緙栧埗浠栭鍏堣鑰冭檻鍒癈鍙互姝g‘璋冪敤榪欎簺DLL錛岃岀敤鎴峰彲鑳戒細(xì)浣跨敤C++鑰?font color=#990000>extern "C" {}灝變細(xì)鍙戠敓浣滅敤


Render Donkey 2009-05-17 23:46 鍙戣〃璇勮
]]>[杞琞C++涓畯鐨勪嬌鐢?/title><link>http://m.shnenglu.com/Leaf/archive/2009/05/17/83228.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Sun, 17 May 2009 15:41:00 GMT</pubDate><guid>http://m.shnenglu.com/Leaf/archive/2009/05/17/83228.html</guid><wfw:comment>http://m.shnenglu.com/Leaf/comments/83228.html</wfw:comment><comments>http://m.shnenglu.com/Leaf/archive/2009/05/17/83228.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Leaf/comments/commentRss/83228.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Leaf/services/trackbacks/83228.html</trackback:ping><description><![CDATA[<div id="hvzpftn" class=postbody>鍏充簬## 鍜?#鍙?@鐨勭敤娉?br><br><br><span style="COLOR: red">##</span> 鏄繛鎺ョ鍙?榪炴帴涓や釜瀹?##琚О涓鴻繛鎺ョ錛坈oncatenator錛夛紝鐢ㄦ潵灝嗕袱涓猅oken榪炴帴涓轟竴涓猅oken銆傛敞鎰忚繖閲岃繛鎺ョ殑瀵硅薄鏄疶oken灝辮錛岃屼笉涓瀹氭槸瀹忕殑鍙?<br>閲忋傛瘮濡備綘瑕佸仛涓涓彍鍗曢」鍛戒護(hù)鍚嶅拰鍑芥暟鎸囬拡緇勬垚鐨勭粨鏋勪綋鐨勬暟緇勶紝騫朵笖甯屾湜鍦ㄥ嚱鏁板悕鍜岃彍鍗曢」鍛戒護(hù)鍚嶄箣闂存湁鐩磋鐨勩佸悕瀛椾笂鐨勫叧緋匯傞偅灝卞彲浠ヤ嬌鐢細(xì)瀹忓弬鏁?# <br>鍥哄畾閮ㄥ垎銆傚綋鐒惰繕鍙互n涓?#絎﹀彿榪炴帴 n+1涓猅oken錛岃繖涓壒鎬т篃鏄?絎﹀彿鎵涓嶅叿澶囩殑銆?<br>#define LINK_MULTIPLE(a,b,c,d) a##_##b##_##c##_##d<br>typedef struct _record_type LINK_MULTIPLE(name,company,position,salary);<br>// 榪欓噷榪欎釜璇彞灝嗗睍寮涓猴細(xì)<br>//      typedef struct _record_type name_company_position_salary;<br><br><br><span style="COLOR: red">#@</span>       鍔熻兘鏄皢鍏跺悗闈㈢殑瀹忓弬鏁拌繘琛屽瓧絎﹀寲銆?br><br>#define makechar(x)  <a href="mailto:#@xa"><font color=#005880>#@x<br>a</font></a> = makechar(b);<br>//a = 'b';<br><br><br><span style="COLOR: red">#</span>   鏄妸鍚嶅瓧浠f浛鎴愬瓧絎︿覆,瀹忎綋涓紝#鐨勫姛鑳芥槸灝嗗叾鍚庨潰鐨勫畯鍙傛暟榪涜瀛楃涓插寲鎿嶄綔錛圫tringfication錛夛紝綆鍗曡灝辨槸鍦ㄥ瀹冩墍寮曠敤鐨勫畯鍙橀噺閫氳繃鏇挎崲鍚庡湪鍏跺乏鍙沖悇鍔犱笂涓涓?<br>鍙屽紩鍙楓?br>#define WARN_IF(EXP)        \<br>        do{ if (EXP)        \<br>                fprintf(stderr, "Warning: " #EXP "\n"); }       \<br>        while(0)<br>閭d箞瀹為檯浣跨敤涓細(xì)鍑虹幇涓嬮潰鎵紺虹殑鏇挎崲榪囩▼錛?<br>WARN_IF (divider == 0);<br>琚浛鎹負(fù)<br>do {<br>        if (divider == 0)<br>fprintf(stderr, "Warning" "divider == 0" "\n");<br>} while(0);<br>榪欐牱姣忔divider錛堥櫎鏁幫級(jí)涓?鐨勬椂鍊欎究浼?xì)鍦ㄦ爣鍑嗛敊璇瘚箒涓婅緭鍑轰竴涓彁紺轟俊鎭?<br><br><br><span style="COLOR: red"> <dt><strong>!IF </strong><span id="hvzpftn" class=parameter>constantexpression</span> <dd> <p>濡傛灉 <span id="hvzpftn" class=parameter>constantexpression</span> 璁$畻緇撴灉涓洪潪闆跺鹼紝鍒欏鐞?<strong>!IF</strong> 鍜屼笅涓涓?<strong>!ELSE</strong> 鎴?<strong>!ENDIF</strong> 涔嬮棿鐨勮鍙ャ?br><strong>!ENDIF</strong> </p> </dd><span style="COLOR: red"><span style="COLOR: red"><font style="FONT-SIZE: 12pt" face=#ce_temp_font#> <dd> <p>鏍囪 <strong>!IF</strong>銆?strong>!IFDEF</strong> 鎴?<strong>!IFNDEF</strong> 鍧楃殑緇撳熬銆傚悓涓琛屼笂 <strong>!ENDIF</strong> 鍚庨潰鐨勬墍鏈夋枃鏈蹇界暐銆?/p> </font></dd></span> <dd></dd></span> <dd></dd></span> <dd></dd></div> <script type=text/javascript> //<![cdata[ Sys.WebForms.PageRequestManager._initialize('AjaxHolder$scriptmanager1', document.getElementById('Form1')); Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tAjaxHolder$UpdatePanel1'], [], [], 90); //]]> </script> <img src ="http://m.shnenglu.com/Leaf/aggbug/83228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2009-05-17 23:41 <a href="http://m.shnenglu.com/Leaf/archive/2009/05/17/83228.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞琞閫氳繃渚嬪瓙瀛︿範(fàn)Luahttp://m.shnenglu.com/Leaf/archive/2009/05/16/83145.htmlRender DonkeyRender DonkeySat, 16 May 2009 13:37:00 GMThttp://m.shnenglu.com/Leaf/archive/2009/05/16/83145.htmlhttp://m.shnenglu.com/Leaf/comments/83145.htmlhttp://m.shnenglu.com/Leaf/archive/2009/05/16/83145.html#Feedback0http://m.shnenglu.com/Leaf/comments/commentRss/83145.htmlhttp://m.shnenglu.com/Leaf/services/trackbacks/83145.html鎹鏈枃浣滆呮槸OGDEV鐨凥ACK杈句漢

閫氳繃渚嬪瓙瀛︿範(fàn)Lua(1) ---- Hello World

1.鍓嶈█
娓告垙涓皯涓嶄簡(jiǎn)鐢ㄥ埌鑴氭湰璇█. Lua鏄竴縐嶅拰C/C++緇撳悎闈炲父绱у瘑鐨勮剼鏈璦錛屾晥鐜囨瀬楂樸?br>涓鑸槸瀵規(guī)椂闂磋姹傛瘮杈冮珮鐨勫湴鏂圭敤C++鍐欙紝鑰岀粡甯擱渶瑕佹敼鍔ㄧ殑鍦版柟鐢↙ua鍐欍?/p>

鍋舵渶榪戝湪瀛︿範(fàn)Lua, 鎵浠ュ啓鍑哄績(jī)寰楀拰澶у鍏變韓. Lua鏄竴縐嶅畬鍏ㄥ厤璐圭殑鑴氭湰璇█,
瀹冪殑瀹樻柟緗戠珯鍦?a >http://www.lua.org.鍦ㄧ綉绔欎笂鍙互涓嬭澆鍒發(fā)ua鐨勬簮鐮? 娌℃湁鍙?br>鎵ц鐗堟湰, 涓嶈繃涓嶇敤鎷呭績(jī), 鍥犱負(fù)lua婧愮爜鍙互鍦ㄤ換浣曚竴縐岰/C++鐨勭紪璇戝櫒涓婄紪璇?

濡傛灉瑕佸涔?fàn)Lua, 瀹樻柟緗戠珯涓婄殑Reference鏄繀澶囩殑錛屼笂闈㈡湁姣忎釜鍛戒護(hù)鐨勭敤娉曪紝闈炲父璇?br>緇嗐?br>鍙傝冩墜鍐?http://www.lua.org/manual/5.0/
浣滆呭啓鐨凱rogramming in Lua http://www.lua.org/pil/

2.緙栬瘧
濡傛灉鐢ㄧ殑VC, 鍙互涓嬭澆鎵闇鐨刾roject鏂囦歡,鍦板潃鍦?br>http://sourceforge.net/project/showfiles.php?group_id=32250&package_id=115604
鍋剁敤鐨勬槸cygwin鍜宭inux, 鎵撳叆浠ヤ笅鍛戒護(hù)鍗沖彲,
tar -zxvf lua-5.0.2.tar.gz
cd lua-5.0.2
sh ./configure
make
榪欐牱灝監(jiān)K浜?jiǎn)銆?br>涓轟簡(jiǎn)浠ュ悗浣跨敤鏂逛究錛屾渶濂芥妸bin鐩綍鍔犲叆鍒皃ath閲岄潰銆?/p>

3."Hello, world!"
鐜板湪寮濮嬪伓浠殑絎竴涓皬紼嬪簭"Hello, world!"
鎶婁互涓嬬▼搴忔墦鍏ユ枃浠秂01.lua

渚?:e01.lua
-- Hello World in Lua
print("Hello World.")

Lua鏈変袱縐嶆墽琛屾柟寮忥紝涓縐嶆槸宓屽叆鍒癈紼嬪簭涓墽琛岋紝榪樻湁涓縐嶆槸鐩存帴浠庡懡浠よ鏂瑰紡涓嬫墽
琛屻?br>榪欓噷涓轟簡(jiǎn)璋冭瘯鏂逛究錛岄噰鐢ㄧ浜岀鏂瑰紡錛屾墽琛屽懡浠?lua e01.lua

杈撳嚭緇撴灉搴旇鏄細(xì)
Hello World.

4.紼嬪簭璇存槑
絎竴琛?-- Hello World in Lua
榪欏彞鏄敞閲婏紝鍏朵腑--鍜孋++涓殑//鎰忔濇槸涓鏍風(fēng)殑
絎簩琛?print("Hello World.")
璋冪敤lua鍐呴儴鍛戒護(hù)print錛岃緭鍑?Hello World."瀛楃涓插埌灞忓箷錛孡ua涓殑瀛楃涓插叏閮ㄦ槸
鐢?鎷搗鏉ョ殑銆?br>榪欎釜鍛戒護(hù)鏄竴涓嚱鏁扮殑璋冪敤錛宲rint鏄痩ua鐨勪竴涓嚱鏁幫紝鑰?Hello World."鏄痯rint鐨勫弬
鏁般?/p>

5.璇曡瘯鐪?br>鍦↙ua涓湁涓嶅皯瀛楃涓茬殑澶勭悊鎿嶄綔錛屾湰嬈$殑璇懼悗璇曡瘯鐪嬬殑鍐呭灝辨槸錛屾壘鍑?guó)櫩炴帴涓や釜瀛椊W︿覆
鐨勬搷浣滐紝
騫朵笖print鍑烘潵銆?br>--

閫氳繃渚嬪瓙瀛︿範(fàn)Lua(2) --- Lua鍩虹

1. 鍑芥暟鐨勪嬌鐢?br>浠ヤ笅紼嬪簭婕旂ず浜?jiǎn)濡備綍鍦↙ua涓嬌鐢ㄥ嚱鏁? 鍙?qiáng)灞閮ㄥ彉閲?br>渚媏02.lua
-- functions
function pythagorean(a, b)   
       local c2 = a^2 + b^2   
       return sqrt(c2)
end
print(pythagorean(3,4))

榪愯緇撴灉
5

紼嬪簭璇存槑
鍦↙ua涓嚱鏁扮殑瀹氫箟鏍煎紡涓?
function 鍑芥暟鍚?鍙傛暟)
       ...
end
涓嶱ascal璇█涓嶅悓, end涓嶉渶瑕佷笌begin閰嶅, 鍙渶瑕佸湪鍑芥暟緇撴潫鍚庢墦涓猠nd灝卞彲浠ヤ簡(jiǎn).
鏈緥鍑芥暟鐨勪綔鐢ㄦ槸宸茬煡鐩磋涓夎褰㈢洿瑙掕竟, 姹傛枩杈歸暱搴? 鍙傛暟a,b鍒嗗埆琛ㄧず鐩磋杈歸暱,
鍦ㄥ嚱鏁板唴瀹氫箟浜?jiǎn)local褰㈠彉閲忕敤浜庡瓨鍌ㄦ枩杈圭殑騫蟲(chóng)柟. 涓嶤璇█鐩稿悓, 瀹氫箟鍦ㄥ嚱鏁板唴鐨勪唬
鐮佷笉浼?xì)琚洿鎺ユ墽琛? 鍙湁涓葷▼搴忚皟鐢ㄦ椂鎵嶄細(xì)琚墽琛?
local琛ㄧず瀹氫箟涓涓眬閮ㄥ彉閲? 濡傛灉涓嶅姞local鍒氳〃紺篶2涓轟竴涓叏灞鍙橀噺, local鐨勪綔鐢ㄥ煙
鏄湪鏈閲屽眰鐨別nd鍜屽叾閰嶅鐨勫叧閿瓧涔嬮棿, 濡俰f ... end, while ... end絳夈傚叏灞鍙橀噺
鐨?br>浣滅敤鍩熸槸鏁翠釜紼嬪簭銆?/p>

2. 寰幆璇彞
渚媏03.lua
-- Loops
for i=1,5 do   
       print("i is now " .. i)
end

榪愯緇撴灉
i is now 1
i is now 2
i is now 3
i is now 4
i is now 5

紼嬪簭璇存槑
榪欓噷鍋朵滑鐢ㄥ埌浜?jiǎn)for璇彞
for 鍙橀噺 = 鍙傛暟1, 鍙傛暟2, 鍙傛暟3 do
       寰幆浣?br>end
鍙橀噺灝嗕互鍙傛暟3涓烘闀? 鐢卞弬鏁?鍙樺寲鍒板弬鏁?
渚嬪:   
for i=1,f(x) do print(i) end
for i=10,1,-1 do print(i) end

榪欓噷print("i is now " .. i)涓紝鍋朵滑鐢ㄥ埌浜?.錛岃繖鏄敤鏉ヨ繛鎺ヤ袱涓瓧絎︿覆鐨勶紝
鍋跺湪(1)鐨勮瘯璇曠湅涓彁鍒扮殑錛屼笉鐭ラ亾浣犱滑絳斿浜?jiǎn)娌℃湁銆?br>铏界劧榪欓噷i鏄竴涓暣鍨嬮噺錛孡ua鍦ㄥ鐞嗙殑鏃跺欎細(xì)鑷姩杞垚瀛楃涓插瀷錛屼笉闇鍋朵滑璐瑰績(jī)銆?/p>

3. 鏉′歡鍒嗘敮璇彞
渚媏04.lua
-- Loops and conditionals
for i=1,5 do
       print(“i is now “ .. i)
         if i < 2 then       
               print(“small”)   
         elseif i < 4 then       
               print(“medium”)   
         else       
               print(“big”)   
         end
end

榪愯緇撴灉
i is now 1
small
i is now 2
medium
i is now 3
medium
i is now 4
big
i is now 5
big

紼嬪簭璇存槑
if else鐢ㄦ硶姣旇緝綆鍗? 綾諱技浜嶤璇█, 涓嶈繃姝ゅ闇瑕佹敞鎰忕殑鏄暣涓猧f鍙渶瑕佷竴涓猠nd,
鍝曠敤浜?jiǎn)澶氫釜elseif, 涔熸槸涓涓猠nd.
渚嬪
    if op == "+" then
      r = a + b
    elseif op == "-" then
      r = a - b
    elseif op == "*" then
      r = a*b
    elseif op == "/" then
      r = a/b
    else
      error("invalid operation")
    end


4.璇曡瘯鐪?br>Lua涓櫎浜?jiǎn)for寰幆浠ュ, 榪樻敮鎸佸縐嶅驚鐜? 璇風(fēng)敤while...do鍜宺epeat...until鏀瑰啓鏈枃
涓殑for紼嬪簭

--
閫氳繃渚嬪瓙瀛︿範(fàn)Lua(3) ---- 鏁版嵁緇撴瀯

1.綆浠?
Lua璇█鍙湁涓縐嶅熀鏈暟鎹粨鏋? 閭e氨鏄痶able, 鎵鏈夊叾浠栨暟鎹粨鏋勫鏁扮粍鍟?
綾誨暒, 閮藉彲浠ョ敱table瀹炵幇.

2.table鐨勪笅鏍?
渚媏05.lua
-- Arrays
myData = {}
myData[0] = “foo”
myData[1] = 42

-- Hash tables
myData[“bar”] = “baz”

-- Iterate through the
-- structure
for key, value in myData do
print(key .. “=“ .. value)
end

杈撳嚭緇撴灉
0=foo
1=42
bar=baz

紼嬪簭璇存槑
棣栧厛瀹氫箟浜?jiǎn)涓涓猼able myData={}, 鐒跺悗鐢ㄦ暟瀛椾綔涓轟笅鏍囪祴浜?jiǎn)涓や釜鍊肩粰瀹? 榪欑
瀹氫箟鏂規(guī)硶綾諱技浜嶤涓殑鏁扮粍, 浣嗕笌鏁扮粍涓嶅悓鐨勬槸, 姣忎釜鏁扮粍鍏冪礌涓嶉渶瑕佷負(fù)鐩稿悓綾誨瀷,
灝卞儚鏈緥涓竴涓負(fù)鏁村瀷, 涓涓負(fù)瀛楃涓?

紼嬪簭絎簩閮ㄥ垎, 浠ュ瓧絎︿覆鍋氫負(fù)涓嬫爣, 鍙堝悜table鍐呭鍔犱簡(jiǎn)涓涓厓绱? 榪欑table闈炲父
鍍廠TL閲岄潰鐨刴ap. table涓嬫爣鍙互涓篖ua鎵鏀寔鐨勪換鎰忓熀鏈被鍨? 闄や簡(jiǎn)nil鍊間互澶?

Lua瀵筎able鍗犵敤鍐呭瓨鐨勫鐞嗘槸鑷姩鐨? 濡備笅闈㈣繖孌典唬鐮?
a = {}
a["x"] = 10
b = a -- `b' refers to the same table as `a'
print(b["x"]) --> 10
b["x"] = 20
print(a["x"]) --> 20
a = nil -- now only `b' still refers to the table
b = nil -- now there are no references left to the table
b鍜宎閮芥寚鍚戠浉鍚岀殑table, 鍙崰鐢ㄤ竴鍧楀唴瀛? 褰撴墽琛屽埌a = nil鏃? b浠嶇劧鎸囧悜table,
鑰屽綋鎵ц鍒癰=nil鏃? 鍥犱負(fù)娌℃湁鎸囧悜table鐨勫彉閲忎簡(jiǎn), 鎵浠ua浼?xì)鑷姩閲婃斁table鎵鍗犲唴瀛?

3.Table鐨勫祵濂?
Table鐨勪嬌鐢ㄨ繕鍙互宓屽錛屽涓嬩緥
渚媏06.lua
-- Table ‘constructor’
myPolygon = {
color=“blue”,
thickness=2,
npoints=4;
{x=0, y=0},
{x=-10, y=0},
{x=-5, y=4},
{x=0, y=4}
}

-- Print the color
print(myPolygon[“color”])

-- Print it again using dot
-- notation
print(myPolygon.color)

-- The points are accessible
-- in myPolygon[1] to myPolygon[4]

-- Print the second point’s x
-- coordinate
print(myPolygon[2].x)

紼嬪簭璇存槑
棣栧厛寤虹珛涓涓猼able, 涓庝笂涓渚嬩笉鍚岀殑鏄紝鍦╰able鐨刢onstructor閲岄潰鏈墈x=0,y=0},
榪欐槸浠涔堟剰鎬濆憿錛?榪欏叾瀹炲氨鏄竴涓皬table, 瀹氫箟鍦ㄤ簡(jiǎn)澶able涔嬪唴, 灝弔able鐨?
table鍚嶇渷鐣ヤ簡(jiǎn).
鏈鍚庝竴琛宮yPolygon[2].x錛屽氨鏄ぇtable閲岄潰灝弔able鐨勮闂柟寮?

--
閫氳繃渚嬪瓙瀛︿範(fàn)Lua(4) -- 鍑芥暟鐨勮皟鐢?

1.涓嶅畾鍙傛暟
渚媏07.lua
-- Functions can take a
-- variable number of
-- arguments.
function funky_print (...)
for i=1, arg.n do
print("FuNkY: " .. arg)
end
end

funky_print("one", "two")

榪愯緇撴灉
FuNkY: one
FuNkY: two

紼嬪簭璇存槑
* 濡傛灉浠?..涓哄弬鏁? 鍒欒〃紺哄弬鏁扮殑鏁伴噺涓嶅畾.
* 鍙傛暟灝嗕細(xì)鑷姩瀛樺偍鍒頒竴涓彨arg鐨則able涓?
* arg.n涓瓨鏀懼弬鏁扮殑涓暟. arg[]鍔犱笅鏍囧氨鍙互閬嶅巻鎵鏈夌殑鍙傛暟.


2.浠able鍋氫負(fù)鍙傛暟
渚媏08.lua
-- Functions with table
-- parameters
function print_contents(t)
for k,v in t do
print(k .. "=" .. v)
end
end
print_contents{x=10, y=20}

榪愯緇撴灉
x=10
y=20

紼嬪簭璇存槑
* print_contents{x=10, y=20}榪欏彞鍙傛暟娌″姞鍦嗘嫭鍙? 鍥犱負(fù)浠ュ崟涓猼able涓哄弬鏁扮殑鏃跺?
涓嶉渶瑕佸姞鍦嗘嫭鍙?
* for k,v in t do 榪欎釜璇彞鏄table涓殑鎵鏈夊奸亶鍘? k涓瓨鏀懼悕縐? v涓瓨鏀懼?


3.鎶奓ua鍙樻垚綾諱技XML鐨勬暟鎹弿榪拌璦
渚媏09.lua
function contact(t)
-- add the contact ‘t’, which is
-- stored as a table, to a database
end

contact {
name = "Game Developer",
email = "hack@ogdev.net",
url = "http://www.ogdev.net,
quote = [[
There are
10 types of people
who can understand binary.]]
}

contact {
-- some other contact
}

紼嬪簭璇存槑
* 鎶奻unction鍜宼able緇撳悎, 鍙互浣縇ua鎴愪負(fù)涓縐嶇被浼糥ML鐨勬暟鎹弿榪拌璦
* e09涓璫ontact{...}, 鏄竴縐嶅嚱鏁扮殑璋冪敤鏂規(guī)硶, 涓嶈寮勬販浜?
* [[...]]鏄〃紺哄琛屽瓧絎︿覆鐨勬柟娉?
* 褰撲嬌鐢– API鏃舵縐嶆柟寮忕殑浼樺娍鏇存槑鏄? 鍏朵腑contact{..}閮ㄥ垎鍙互鍙﹀瀛樻垚涓閰嶇疆鏂?
浠?

4.璇曡瘯鐪?
鎯蟲(chóng)兂鐪嬪摢浜涘湴鏂瑰彲浠ョ敤鍒頒緥e09涓彁鍒扮殑閰嶇疆鏂規(guī)硶鍛紵

--

閫氳繃渚嬪瓙瀛︿範(fàn)Lua(5) ---- Lua涓嶤浜や簰鍏ラ棬

1.綆浠?

Lua涓嶤/C++緇撳悎鏄緢绱у瘑鐨? Lua涓嶤++浜や簰鏄緩绔嬪湪Lua涓嶤鐨勫熀紜涓婄殑, 鎵
浠ュ伓鍏堜粠Lua涓嶤璁茶搗.

姝e絎竴璁叉墍璇? 榪愯Lua紼嬪簭鎴栬呰璋冪敤Lua涓昏鏈変袱縐嶆柟寮?
* 閫氳繃鍛戒護(hù)琛屾墽琛?Lua"鍛戒護(hù)
* 閫氳繃Lua鐨凜搴?
铏界劧姝ゅ墠鍋朵滑涓鐩寸敤絎竴縐嶆柟寮? 浣嗗伓瑕佸憡璇変綘, 閫氳繃Lua鐨凜搴撴墽琛屾墠鏄父鎴忎腑
甯哥敤鐨勬柟寮?

2.Lua鐨凜搴?

Lua鐨凜搴撳彲浠ュ仛涓篠hared Library璋冪敤, 浣嗕竴鑸紑鍙戞父鎴忔椂浼?xì)鎶奓ua鐨勬墍鏈夋簮紼嬪簭
閮藉寘鍚湪鍐? 騫朵笉鎶奓ua緙栬瘧鎴愬叡浜簱鐨勫艦寮? 鍥犱負(fù)Lua紼嬪簭鍙湁100澶欿, 鑰屼笖鍑犱箮
鍙互鍦ㄤ換浣曠紪璇戝櫒涓婥lean Compile. 甯ua婧愮▼搴忕殑鍙︿竴涓ソ澶勬椂, 鍙互闅忔椂瀵筁ua
鏈韓榪涜鎵╁厖, 澧炲姞鍋朵滑鎵闇鐨勫姛鑳?

Lua鐨凜搴撴彁渚涗竴緋誨垪API:
* 綆$悊鍏ㄥ眬鍙橀噺
* 綆$悊tables
* 璋冪敤鍑芥暟
* 瀹氫箟鏂板嚱鏁? 榪欎篃鍙互瀹屽叏鐢盋瀹炵幇
* 鍨冨溇鏀墮泦鍣℅arbage collector, 铏界劧Lua鍙互鑷姩榪涜, 浣嗗線寰涓嶆槸绔嬪嵆鎵ц鐨?
鎵浠ュ瀹炴椂鎬ц姹傛瘮杈冮珮鐨勭▼搴? 浼?xì)鑷忿p皟鐢ㄥ瀮鍦炬敹闆嗗櫒
* 杞藉叆騫舵墽琛孡ua紼嬪簭, 榪欎篃鍙互鐢盠ua鑷韓瀹炵幇
* 浠諱綍Lua鍙互瀹炵幇鐨勫姛鑳? 閮藉彲浠ラ氳繃Lua鐨凜 API瀹炵幇, 榪欏浜庝紭鍖栫▼搴忕殑榪愯閫熷害
鏈夊府鍔? 緇忓父璋冪敤鐨勫叡鐢ㄧ殑Lua紼嬪簭鐗囨柇鍙互杞垚C紼嬪簭, 浠ユ彁楂樻晥鐜? 榪濴ua閮芥槸C鍐欑殑
榪樻湁浠涔圕涓嶈兘瀹炵幇鍛?

3.Lua涓嶤闆嗘垚鐨勪緥瀛?
渚媏10.c
/* A simple Lua interpreter. */
#include <stdio.h>
#include <lua.h>
int main(int argc, char *argv[]) {
char line[BUFSIZ];
lua_State *L = lua_open(0);
while (fgets(line, sizeof(line), stdin) != 0)
lua_dostring(L, line);
lua_close(L);
return 0;
}

緙栬瘧
Linux/Cygwin
* 鍏堢紪璇慙ua, 騫舵妸澶存枃浠舵斁鍏nclude璺緞
* gcc e10.c -llua -llualib -o e10

VC6/VC2003
* 鍏堢紪璇慙ua, 鍦∣ption涓緗ご鏂囦歡鍜屽簱鏂囦歡璺緞
* 鏂板緩宸ョ▼,鍦ㄥ伐紼嬮厤緗腑鍔犲叆闄勫姞搴搇ua.lib鍜宭ualib.lib
* 緙栬瘧鎴恊xe

榪愯緇撴灉
鏈▼搴忕殑鍔熻兘鏄疄鐜頒竴涓狶ua瑙i噴鍣? 杈撳叆鐨勬瘡琛屽瓧絎﹂兘浼?xì)琚В閲婃垚Lua騫舵墽琛?

紼嬪簭璇存槑
* #include <lua.h> 鍖呭惈lua澶存枃浠? 鐒跺悗鎵嶅彲浠ヤ嬌鐢ˋPI
* lua_State *L = lua_open(0) 鎵撳紑涓涓狶ua鎵ц鍣?
* fgets(line, sizeof(line), stdin) 浠庢爣鍑嗚緭鍏ラ噷璇誨叆涓琛?
* lua_dostring(L, line) 鎵ц姝よ
* lua_close(L) 鍏抽棴Lua鎵ц鍣?


渚媏11.c
/* Another simple Lua interpreter. */
#include <stdio.h>
#include <lua.h>
#include <lualib.h>
int main(int argc, char *argv[]) {
char line[BUFSIZ];
lua_State *L = lua_open(0);
lua_baselibopen(L);
lua_iolibopen(L);
lua_strlibopen(L);
lua_mathlibopen(L);
while (fgets(line, sizeof(line), stdin) != 0)
lua_dostring(L, line);
lua_close(L);
return 0;
}

榪愯緇撴灉
鏈▼搴忕殑鍔熻兘鏄疄鐜頒竴涓狶ua瑙i噴鍣? 杈撳叆鐨勬瘡琛屽瓧絎﹂兘浼?xì)琚В閲婃垚Lua騫舵墽琛?
涓庝笂渚嬩笉鍚岀殑鏄? 鏈緥璋冪敤浜?jiǎn)Lua鐨勪竴浜涙爣鍑嗗簱.

紼嬪簭璇存槑
* #include <lualib.h> 鍖呭惈Lua鐨勬爣鍑嗗簱
* 浠ヤ笅榪欏嚑琛屾槸鐢ㄦ潵璇誨叆Lua鐨勪竴浜涘簱, 榪欐牱鍋朵滑鐨凩ua紼嬪簭灝卞彲浠ユ湁鏇村鐨勫姛鑳?
lua_baselibopen(L);
lua_iolibopen(L);
lua_strlibopen(L);
lua_mathlibopen(L);

4.璇曡瘯鐪?
鎶婁笂闈袱涓皬渚嬪瓙鍦ㄤ綘鐔熸?zhèn)夌殑缂栬瘧鍣ㄤ腑缂栬瘧鎵ц? 騫惰瘯璇曡兘鍚︿笌Lua婧愮爜鏍?wèi)涓璧風(fēng)紪璇?

--
閫氳繃渚嬪瓙瀛︿範(fàn)Lua(6) ---- C/C++涓敤Lua鍑芥暟

鍙傝冭嫳鏂囨枃妗ttp://tonyandpaige.com/tutorials/lua2.html

1.綆浠?
鍋朵滑榪欐涓昏璇磋鎬庝箞鐢盠ua瀹氫箟鍑芥暟, 鐒跺悗鍦–鎴栬匔++涓皟鐢? 榪欓噷鍋朵滑
鏆備笉娑夊強(qiáng)C++鐨勫璞¢棶棰? 鍙璁鴻皟鐢ㄥ嚱鏁扮殑鍙傛暟, 榪斿洖鍊煎拰鍏ㄥ眬鍙橀噺鐨勪嬌鐢?

2.
榪欓噷鍋朵滑鍦╡12.lua閲屽厛瀹氫箟涓涓畝鍗曠殑add(), x,y涓哄姞娉曠殑涓や釜鍙傛暟,
return 鐩存帴榪斿洖鐩稿姞鍚庣殑緇撴灉.

渚媏12.lua
-- add two numbers
function add ( x, y )
return x + y
end

鍦ㄥ墠涓嬈¢噷, 鍋朵滑璇村埌 lua_dofile() 鍙互鐩存帴鍦–涓墽琛宭ua鏂囦歡. 鍥犱負(fù)鍋朵滑
榪欎釜紼嬪簭閲屽彧瀹氫箟浜?jiǎn)涓涓猘dd()鍑芥暟, 鎵浠ョ▼搴忔墽琛屽悗騫朵笉鐩存帴緇撴灉, 鏁堟灉鐩稿綋
浜庡湪C涓畾涔変簡(jiǎn)涓涓嚱鏁頒竴鏍?

Lua鐨勫嚱鏁板彲浠ユ湁澶氫釜鍙傛暟, 涔熷彲浠ユ湁澶氫釜榪斿洖鍊? 榪欓兘鏄敱鏍?stack)瀹炵幇鐨?
闇瑕佽皟鐢ㄤ竴涓嚱鏁版椂, 灝辨妸榪欎釜鍑芥暟鍘嬪叆鏍? 鐒跺悗欏哄簭鍘嬪叆鎵鏈夊弬鏁? 鐒跺悗鐢?
lua_call()璋冪敤榪欎釜鍑芥暟. 鍑芥暟榪斿洖鍚? 榪斿洖鍊間篃鏄瓨鏀懼湪鏍堜腑. 榪欎釜榪囩▼鍜?
姹囩紪鎵ц鍑芥暟璋冪敤鐨勮繃紼嬫槸涓鏍風(fēng)殑.

渚媏13.cpp 鏄竴涓皟鐢ㄤ笂闈㈢殑Lua鍑芥暟鐨勪緥瀛?
#include <stdio.h>

extern "C" { // 榪欐槸涓狢++紼嬪簭, 鎵浠ヨextern "C",
// 鍥犱負(fù)lua鐨勫ご鏂囦歡閮芥槸C鏍煎紡鐨?
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}

/* the Lua interpreter */
lua_State* L;

int luaadd ( int x, int y )
{
int sum;

/* the function name */
lua_getglobal(L, "add");

/* the first argument */
lua_pushnumber(L, x);

/* the second argument */
lua_pushnumber(L, y);

/* call the function with 2
arguments, return 1 result */
lua_call(L, 2, 1);

/* get the result */
sum = (int)lua_tonumber(L, -1);
lua_pop(L, 1);

return sum;
}

int main ( int argc, char *argv[] )
{
int sum;

/* initialize Lua */
L = lua_open();

/* load Lua base libraries */
lua_baselibopen(L);

/* load the script */
lua_dofile(L, "e12.lua");

/* call the add function */
sum = luaadd( 10, 15 );

/* print the result */
printf( "The sum is %d\n", sum );

/* cleanup Lua */
lua_close(L);

return 0;
}

紼嬪簭璇存槑:
main涓繃紼嬪伓浠笂嬈″凡緇忚榪囦簡(jiǎn), 鎵浠ヨ繖嬈″彧璇磋luaadd鐨勮繃紼?
* 棣栧厛鐢╨ua_getglobal()鎶奱dd鍑芥暟鍘嬫爤
* 鐒跺悗鐢╨ua_pushnumber()渚濇鎶妜,y鍘嬫爤
* 鐒跺悗璋冪敤lua_call(), 騫朵笖鍛婅瘔紼嬪簭鍋朵滑鏈変袱涓弬鏁頒竴涓繑鍥炲?
* 鎺ョ潃鍋朵滑浠庢爤欏跺彇鍥炶繑鍥炲? 鐢╨ua_tonumber()
* 鏈鍚庡伓浠敤lua_pop()鎶婅繑鍥炲兼竻鎺?

榪愯緇撴灉:
The sum is 25

緙栬瘧鏂規(guī)硶
Linux涓嬫妸紼嬪簭瀛樻垚e13.cpp
g++ e13.cpp -llua -llualib -o e13
./e13

VC涓嬬紪璇戞柟娉?
* 棣栧厛寤虹珛涓涓┖鐨刉in32 Console Application Project
* 鎶奺13.cpp鍔犲叆宸ョ▼涓?
* 鐐筽roject setting,鐒跺悗璁劇疆link閫夐」, 鍐嶅姞涓妉ua.lib lualib.lib涓や釜棰濆鐨勫簱
* 鏈鍚庣紪璇?

寤虹珛濂界殑project鍙互鍦ㄨ繖閲屼笅杞?
VC http://tonyandpaige.com/tutorials/luaadd.zip
Linux http://tonyandpaige.com/tutorials/luaadd.tar.gz

3.鍏ㄥ眬鍙橀噺
涓婇潰鍋朵滑鐢ㄥ埌浜?jiǎn)lua_getglobal()浣嗗茍娌℃湁璇︾粏璁? 榪欓噷鍋朵滑鍐嶄婦涓や釜灝忎緥瀛愭潵璇翠笅鍏ㄥ眬
鍙橀噺
lua_getglobal()鐨勪綔鐢ㄥ氨鏄妸lua涓叏灞鍙橀噺鐨勫煎帇鍏ユ爤
lua_getglobal(L, "z");
z = (int)lua_tonumber(L, 1);
lua_pop(L, 1);
鍋囪Lua紼嬪簭涓畾涔変簡(jiǎn)涓涓叏灞鍙橀噺z, 榪欐灝忕▼搴忓氨鏄妸z鐨勫煎彇鍑烘斁鍏鐨勫彉閲弞涓?

鍙﹀Lua涓繕鏈変竴涓搴旂殑鍑芥暟l(fā)ua_setglobal(), 浣滅敤鏄敤鏍堥《鐨勫煎~鍏呮寚瀹氱殑鍏ㄥ眬鍙?
閲?
lua_pushnumber(L, 10);
lua_setglobal(L, "z");
渚嬪榪欐灝忕▼搴忓氨鏄妸lua涓殑鍏ㄥ眬鍙橀噺z璁句負(fù)10, 濡傛灉lua涓湭瀹氫箟z鐨勮瘽, 灝變細(xì)鑷姩鍒?
寤轟竴涓?
鍏ㄥ眬鍙橀噺z騫惰涓?0.

4.璇曡瘯鐪?
鑷繁鍐欎釜鍑芥暟鐢–/C++鏉ヨ皟鐢ㄤ笅璇曡瘯

--
閫氳繃渚嬪瓙瀛︿範(fàn)Lua(7) ---- Lua涓皟鐢–/C++鍑芥暟

1.鍓嶈█
涓婃鍋惰鍒頒粠C/C++涓皟鐢↙ua鐨勫嚱鏁? 鐒跺悗灝辨湁鏈嬪弸闂粠Lua涓浣曡皟鐢–/C++鐨?
鍑芥暟, 鎵浠ュ伓浠繖嬈″氨鏉ヨ璇磋繖涓棶棰? 棣栧厛鍋朵滑浼?xì)鍦–++涓緩绔嬩竴涓嚱鏁? 鐒跺悗
鍛婄煡Lua鏈夎繖涓嚱鏁? 鏈鍚庡啀鎵ц瀹? 鍙﹀, 鐢變簬鍑芥暟涓嶆槸鍦↙ua涓畾涔夌殑, 鎵浠?
鏃犳硶紜畾鍑芥暟鐨勬紜? 鍙兘鍦ㄨ皟鐢ㄨ繃紼嬩腑浼?xì)鍑洪? 鍥犳鍋朵滑榪樹(shù)細(xì)璇磋Lua鍑洪敊澶?
鐞嗙殑闂.

2.Lua涓皟鐢–鍑芥暟
鍦╨ua涓槸浠ュ嚱鏁版寚閽堢殑褰㈠紡璋冪敤鍑芥暟, 騫朵笖鎵鏈夌殑鍑芥暟鎸囬拡閮藉繀欏繪弧瓚沖涓嬫縐?
綾誨瀷:
typedef int (*lua_CFunction) (lua_State *L);

涔熷氨鏄, 鍋朵滑鍦–++涓畾涔夊嚱鏁版椂蹇呴』浠ua_State涓哄弬鏁? 浠nt涓鴻繑鍥炲兼墠鑳?
琚獿ua鎵璋冪敤. 浣嗘槸涓嶈蹇樿浜? 鍋朵滑鐨刲ua_State鏄敮鎸佹爤鐨? 鎵浠ラ氳繃鏍堝彲浠?
浼犻掓棤絀蜂釜鍙傛暟, 澶у皬鍙彈鍐呭瓨澶у皬闄愬埗. 鑰岃繑鍥炵殑int鍊間篃鍙槸鎸囪繑鍥炲肩殑涓暟
鐪熸鐨勮繑鍥炲奸兘瀛樺偍鍦╨ua_State鐨勬爤涓? 鍋朵滑閫氬父鐨勫仛娉曟槸鍋氫竴涓獁rapper, 鎶?
鎵鏈夐渶瑕佽皟鐢ㄧ殑鍑芥暟閮絯rap涓涓? 榪欐牱灝卞彲浠ヨ皟鐢ㄤ換鎰忕殑鍑芥暟浜?

涓嬮潰榪欎釜渚嬪瓙鏄竴涓狢++鐨刟verage()鍑芥暟, 瀹冨皢灞曠ず濡備綍鐢ㄥ涓弬鏁板茍榪斿洖澶氫釜鍊?

渚媏14.cpp
#include <stdio.h>

extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}

/* the Lua interpreter */
lua_State* L;

static int average(lua_State *L)
{
/* get number of arguments */
int n = lua_gettop(L);
double sum = 0;
int i;

/* loop through each argument */
for (i = 1; i <= n; i++)
{
/* total the arguments */
sum += lua_tonumber(L, i);
}

/* push the average */
lua_pushnumber(L, sum / n);

/* push the sum */
lua_pushnumber(L, sum);

/* return the number of results */
return 2;
}

int main ( int argc, char *argv[] )
{
/* initialize Lua */
L = lua_open();

/* load Lua base libraries */
lua_baselibopen(L);

/* register our function */
lua_register(L, "average", average);

/* run the script */
lua_dofile(L, "e15.lua");

/* cleanup Lua */
lua_close(L);

return 0;
}

渚媏15.lua
-- call a C++ function

avg, sum = average(10, 20, 30, 40, 50)

print("The average is ", avg)
print("The sum is ", sum)


紼嬪簭璇存槑:
* lua_gettop()鐨勪綔鐢ㄦ槸榪斿洖鏍堥《鍏冪礌鐨勫簭鍙? 鐢變簬Lua鐨勬爤鏄粠1寮濮嬬紪鍙風(fēng)殑,
鎵浠ユ爤欏跺厓绱犵殑搴忓彿涔熺浉褰撲簬鏍堜腑鐨勫厓绱犱釜鏁? 鍦ㄨ繖閲? 鏍堜腑鍏冪礌鐨勪釜鏁板氨
鏄紶鍏ョ殑鍙傛暟涓暟.
* for寰幆璁$畻鎵鏈変紶鍏ュ弬鏁扮殑鎬誨拰. 榪欓噷鐢ㄥ埌浜?jiǎn)鏁板艱漿鎹ua_tonumber().
* 鐒跺悗鍋朵滑鐢╨ua_pushnumber()鎶婂鉤鍧囧煎拰鎬誨拰push鍒版爤涓?
* 鏈鍚? 鍋朵滑榪斿洖2, 琛ㄧず鏈変袱涓繑鍥炲?
* 鍋朵滑铏界劧鍦–++涓畾涔変簡(jiǎn)average()鍑芥暟, 浣嗗伓浠殑Lua紼嬪簭騫朵笉鐭ラ亾, 鎵浠ラ渶
瑕佸湪main鍑芥暟涓姞鍏?

/* register our function */
lua_register(L, "average", average);

榪欎袱琛岀殑浣滅敤灝辨槸鍛婅瘔e15.lua鏈塧verage()榪欐牱涓涓嚱鏁?
* 榪欎釜紼嬪簭鍙互瀛樻垚cpp涔熷彲浠ュ瓨鎴恈, 濡傛灉浠?c涓烘墿灞曞悕灝變笉闇瑕佸姞extern "C"

緙栬瘧鐨勬柟娉曞伓浠笂嬈¤榪囦簡(jiǎn), 鏂規(guī)硶鐩稿悓.
e15.lua鎵ц鐨勬柟娉曞彧鑳界敤涓婁緥涓殑C++涓墽琛? 鑰屼笉鑳界敤鍛戒護(hù)琛屾柟寮忔墽琛?

3.閿欒澶勭悊
鍦ㄤ笂渚嬩腑, 鍋朵滑娌℃湁瀵逛紶鍏ョ殑鍙傛暟鏄惁涓烘暟瀛楄繘琛屾嫻? 榪欐牱鍋氫笉濂? 鎵浠ヨ繖閲屽伓
浠啀鍔犱笂閿欒澶勭悊鐨勭墖鏂?

鎶婅繖孌靛姞鍦╢or寰幆涔嬪唴:
if (!lua_isnumber(L, i)) {
lua_pushstring(L, "Incorrect argument to 'average'");
lua_error(L);
}
榪欐鐨勪綔鐢ㄥ氨鏄嫻嬩紶鍏ョ殑鏄惁涓烘暟瀛?

鍔犱笂榪欐涔嬪悗, 鍋朵滑debug鐨勬椂鍊欏氨浼?xì)绠鍗曡澶? 瀵逛簬緇撳悎涓ょ璇█鐨勭紪紼? 瀹冧滑涔?
闂翠紶閫掓暟鎹殑姝g‘鎬ф嫻嬫槸闈炲父閲嶈鐨?

榪欓噷鏈夊埆浜哄啓濂界殑渚嬪瓙:
VC鐨?http://tonyandpaige.com/tutorials/luaavg.zip
Linux鐨?http://tonyandpaige.com/tutorials/luaavg.tar.gz

鑷蟲(chóng), Lua涓嶤鐨勭粨鍚堝氨鍩烘湰璁插畬浜? 涓嬫鍋惰寮濮嬭璇碙ua涓庨潰鍚戝璞?
浣嗘槸鍋惰嚜宸辮繕娌℃湁瀛﹀畬, 鎵浠ュぇ瀹跺彲鑳借澶氱瓑涓ゅぉ浜? Sorry!

--



]]>
瀛楄妭濉厖鍑芥暟http://m.shnenglu.com/Leaf/archive/2009/04/18/80320.htmlRender DonkeyRender DonkeySat, 18 Apr 2009 01:58:00 GMThttp://m.shnenglu.com/Leaf/archive/2009/04/18/80320.htmlhttp://m.shnenglu.com/Leaf/comments/80320.htmlhttp://m.shnenglu.com/Leaf/archive/2009/04/18/80320.html#Feedback0http://m.shnenglu.com/Leaf/comments/commentRss/80320.htmlhttp://m.shnenglu.com/Leaf/services/trackbacks/80320.html璨屼技鏄湪銆?D娓告垙緙栫▼澶у笀鎶宸с嬩笂鐪嬪埌鐨勮繖涓や釜鍑芥暟錛屽綋鏃惰寰楀緢鐗涜訛紝浜庢槸灝辮涓嬫潵浜?jiǎn)锛屼笉杩囪嚦浠婃病鏈夋庝箞鐢ㄥ埌錛屾垜鎯充及璁′互鍚庝細(xì)鏈夌敤鍚с?br>
//鍐呭祵姹囩紪鐨勭敤浜?瀛楄妭濉厖鐨勫嚱鏁?br>inline  void Mem_Set_QUAD(VOID *dest, UINT data, int count )
{
     _asm
          {
           mov  edi, dest  ; edi鎸囧悜鐩爣鍐呭瓨
銆銆銆銆銆 mov  ecx, count  ;瑕佺Щ鍔ㄧ殑錛擄紥浣嶅瓧鏁?br>銆銆銆銆銆 mov  eax, data   ;錛擄紥浣嶆暟鎹?br>銆銆銆銆銆 rep  stosd    ;縐誨姩鏁版嵁
銆銆銆銆銆锝?/end asm
 }//end Mem_Set_QUAD

//鐢ㄤ簬2瀛楄妭錛圖WORD)鏁版嵁濉厖鐨勫嚱鏁?br>inline  void Mem_Set_WORD(VOID *dest, USHORT data, int count )
{
     _asm
          {
           mov  edi, dest  ; edi鎸囧悜鐩爣鍐呭瓨
銆銆銆銆銆 mov  ecx, count  ;瑕佺Щ鍔ㄧ殑16浣嶅瓧鏁?br>銆銆銆銆銆 mov  ax, data   ;16浣嶆暟鎹?br>銆銆銆銆銆 rep  stosw    ;縐誨姩鏁版嵁
銆銆銆銆銆锝?/end asm
 }//end Mem_Set_WORD





]]>
鏈鍘熷錛屾渶綰湸鐨勫揩閫熸帓搴忕畻娉?/title><link>http://m.shnenglu.com/Leaf/archive/2009/01/04/71134.html</link><dc:creator>Render Donkey</dc:creator><author>Render Donkey</author><pubDate>Sun, 04 Jan 2009 07:48:00 GMT</pubDate><guid>http://m.shnenglu.com/Leaf/archive/2009/01/04/71134.html</guid><wfw:comment>http://m.shnenglu.com/Leaf/comments/71134.html</wfw:comment><comments>http://m.shnenglu.com/Leaf/archive/2009/01/04/71134.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Leaf/comments/commentRss/71134.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Leaf/services/trackbacks/71134.html</trackback:ping><description><![CDATA[<p> </p> <p><br>int Partition(int a[],int l,int r)<br>{<br> int p = a[l];//鍙栭鍏冪礌浣滀負(fù)鍒掑垎鐐?/p> <p> while(l<r)<br> {<br>  while(l<r&& a[r]>=p)<br>   --r;<br>  a[l] = a[r];</p> <p>  while(l<r&& a[l]<=p)<br>   ++l;<br>  a[r] = a[l];<br> }<br> a[l] = p;<br> return l;<br>}</p> <p>void QSort(int a[],int l,int r)<br>{<br> int p;<br> if(l<r)<br> {<br>  p = Partition(a,l,r);<br>  for(int i = l; i< r;++i)<br>  {<br>   cout<<a[i]<<" ";<br>  }<br>  cout<<endl;</p> <p>  QSort(a,l,p-1);<br>  QSort(a,p+1,r);<br> }<br>}</p> <img src ="http://m.shnenglu.com/Leaf/aggbug/71134.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Leaf/" target="_blank">Render Donkey</a> 2009-01-04 15:48 <a href="http://m.shnenglu.com/Leaf/archive/2009/01/04/71134.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://oimeal.com" target="_blank">欧美亚洲一区二区三区</a>| <a href="http://fs-nanxiang.com" target="_blank">国产精品一区一区</a>| <a href="http://ddh345.com" target="_blank">一区二区三区视频在线观看</a>| <a href="http://maomi998.com" target="_blank">亚洲欧洲视频</a>| <a href="http://huabiseeds.com" target="_blank">欧美国产成人精品</a>| <a href="http://www66441.com" target="_blank">亚洲国产专区</a>| <a href="http://tingxihuan.com" target="_blank">91久久线看在观草草青青</a>| <a href="http://goutoujunshi.com" target="_blank">亚洲国产成人午夜在线一区</a>| <a href="http://qkspvip.com" target="_blank">亚洲欧洲久久</a>| <a href="http://aa56789.com" target="_blank">亚洲一区二区在</a>| <a href="http://785448.com" target="_blank">久久精品亚洲精品</a>| <a href="http://1235656.com" target="_blank">欧美黄色成人网</a>| <a href="http://sclddn.com" target="_blank">国产精品美女久久久免费</a>| <a href="http://00001xh.com" target="_blank">国内精品久久久久久久影视麻豆</a>| <a href="http://ximaimicro.com" target="_blank">在线观看中文字幕亚洲</a>| <a href="http://xmt86.com" target="_blank">夜夜夜久久久</a>| <a href="http://wu52vip.com" target="_blank">久久久噜久噜久久综合</a>| <a href="http://x1317.com" target="_blank">最新国产の精品合集bt伙计</a>| <a href="http://czjrby.com" target="_blank">在线一区二区三区做爰视频网站 </a>| <a href="http://cczm4.com" target="_blank">亚洲麻豆av</a>| <a href="http://gelaimeiwedding.com" target="_blank">一区二区激情</a>| <a href="http://www8xvi.com" target="_blank">玖玖玖国产精品</a>| <a href="http://59jf.com" target="_blank">国产精品九九久久久久久久</a>| <a href="http://www-24333.com" target="_blank">黄色成人在线网址</a>| <a href="http://5254f.com" target="_blank">亚洲一区二区在线观看视频</a>| <a href="http://489633.com" target="_blank">免费成人黄色</a>| <a href="http://261262.com" target="_blank">亚洲欧美成人</a>| <a href="http://quintostdio.com" target="_blank">欧美日韩国产91</a>| <a href="http://www01614.com" target="_blank">伊人狠狠色丁香综合尤物</a>| <a href="http://787299.com" target="_blank">亚洲一区二区在线免费观看视频</a>| <a href="http://fengxinye.com" target="_blank">久久久亚洲国产美女国产盗摄</a>| <a href="http://xss521.com" target="_blank">91久久精品视频</a>| <a href="http://72966t.com" target="_blank">久久精品国产99国产精品</a>| <a href="http://211186.com" target="_blank">欧美日韩伊人</a>| <a href="http://wwwby6682.com" target="_blank">亚洲欧洲一二三</a>| <a href="http://850cn.com" target="_blank">老司机午夜精品视频</a>| <a href="http://9113c.com" target="_blank">欧美fxxxxxx另类</a>| <a href="http://0359222.com" target="_blank">欧美日韩精品免费观看视频</a>| <a href="http://wwwyinyinai149.com" target="_blank">国产精品网站在线播放</a>| <a href="http://whmingtong.com" target="_blank">亚洲精品在线免费</a>| <a href="http://cfqcgw.com" target="_blank">免费观看成人www动漫视频</a>| <a href="http://zhaosaofu.com" target="_blank">亚洲午夜国产成人av电影男同</a>| <a href="http://710191.com" target="_blank">蜜臀av一级做a爰片久久</a>| <a href="http://hczztj.com" target="_blank">国产丝袜美腿一区二区三区</a>| <a href="http://ssni888.com" target="_blank">在线一区二区视频</a>| <a href="http://phitris.com" target="_blank">亚洲福利视频三区</a>| <a href="http://www47343.com" target="_blank">美女成人午夜</a>| <a href="http://taoh228.com" target="_blank">一区在线观看</a>| <a href="http://topjavhd.com" target="_blank">久久综合九色综合欧美狠狠</a>| <a href="http://785448.com" target="_blank">久久av老司机精品网站导航 </a>| <a href="http://zb557.com" target="_blank">亚洲欧洲一区二区三区在线观看</a>| <a href="http://xiaocao-av.com" target="_blank">久久精品女人天堂</a>| <a href="http://iacapmm.com" target="_blank">香蕉国产精品偷在线观看不卡 </a>| <a href="http://ewaygou.com" target="_blank">国产精品高潮呻吟久久</a>| <a href="http://wwwby6682.com" target="_blank">一卡二卡3卡四卡高清精品视频 </a>| <a href="http://jrtkpx.com" target="_blank">欧美综合77777色婷婷</a>| <a href="http://carboarm.com" target="_blank">国产日本欧美一区二区三区</a>| <a href="http://48488a.com" target="_blank">欧美一区观看</a>| <a href="http://kaijiepharm.com" target="_blank">欧美一级网站</a>| <a href="http://jxyptsw.com" target="_blank">激情久久中文字幕</a>| <a href="http://18av-77.com" target="_blank">猛男gaygay欧美视频</a>| <a href="http://44cgcg.com" target="_blank">久久婷婷一区</a>| <a href="http://59812mh.com" target="_blank">亚洲欧洲久久</a>| <a href="http://3644688.com" target="_blank">9l视频自拍蝌蚪9l视频成人</a>| <a href="http://77mcn.com" target="_blank">国产精品久久午夜夜伦鲁鲁</a>| <a href="http://www-444454.com" target="_blank">欧美影院一区</a>| <a href="http://www90aaa.com" target="_blank">久久另类ts人妖一区二区</a>| <a href="http://llyx888.com" target="_blank">亚洲高清三级视频</a>| <a href="http://j88866.com" target="_blank">欧美好吊妞视频</a>| <a href="http://www-94889.com" target="_blank">欧美人与性动交α欧美精品济南到 </a>| <a href="http://977mo.com" target="_blank">亚洲视频在线观看一区</a>| <a href="http://wawabt.com" target="_blank">国产精品久久久久999</a>| <a href="http://xxmh686.com" target="_blank">欧美一区二区三区电影在线观看</a>| <a href="http://7a7d.com" target="_blank">性色一区二区三区</a>| <a href="http://sxxawef.com" target="_blank">亚洲福利精品</a>| <a href="http://6673328.com" target="_blank">日韩亚洲视频在线</a>| <a href="http://fcponteggi.com" target="_blank">国产日韩在线视频</a>| <a href="http://012492.com" target="_blank">欧美高清视频免费观看</a>| <a href="http://507139.com" target="_blank">欧美日韩精品免费观看视频完整</a>| <a href="http://xxxyyy168.com" target="_blank">亚洲综合首页</a>| <a href="http://woniuminsu.com" target="_blank">欧美中文字幕在线</a>| <a href="http://www-137999.com" target="_blank">亚洲精品网址在线观看</a>| <a href="http://xing69.com" target="_blank">亚洲天堂偷拍</a>| <a href="http://gx2020.com" target="_blank">亚洲国产精品va在线看黑人</a>| <a href="http://myasker.com" target="_blank">99国产精品久久久久老师</a>| <a href="http://49vvvv.com" target="_blank">国产三级欧美三级日产三级99</a>| <a href="http://www559955.com" target="_blank">免费日韩一区二区</a>| <a href="http://ju5556.com" target="_blank">欧美午夜精品久久久久久久 </a>| <a href="http://2jjzz.com" target="_blank">久久久无码精品亚洲日韩按摩</a>| <a href="http://4008166177.com" target="_blank">久久婷婷蜜乳一本欲蜜臀</a>| <a href="http://9906w.com" target="_blank">一二三区精品</a>| <a href="http://y7y7s.com" target="_blank">亚洲激情一区二区</a>| <a href="http://0934photo.com" target="_blank">亚洲欧洲午夜</a>| <a href="http://coolpaly.com" target="_blank">国产午夜久久久久</a>| <a href="http://xjj733.com" target="_blank">亚洲国产成人精品视频</a>| <a href="http://www36633.com" target="_blank">国产精品久久久久毛片软件</a>| <a href="http://czwangluoyouhua.com" target="_blank">久久免费视频这里只有精品</a>| <a href="http://www-6410c.com" target="_blank">欧美日韩1区</a>| <a href="http://xingcheny.com" target="_blank">老司机aⅴ在线精品导航</a>| <a href="http://687989.com" target="_blank">欧美三区不卡</a>| <a href="http://kk8586.com" target="_blank">欧美黄色aa电影</a>| <a href="http://77smsm.com" target="_blank">国产日韩一区在线</a>| <a href="http://2589999.com" target="_blank">亚洲乱码国产乱码精品精</a>| <a href="http://lianjiemenye.com" target="_blank">国产亚洲一区二区三区在线播放</a>| <a href="http://88844401.com" target="_blank">亚洲国产欧美日韩</a>| <a href="http://tsjcmm.com" target="_blank">国产在线精品一区二区中文</a>| <a href="http://www57669.com" target="_blank">一区二区三区四区国产</a>| <a href="http://www433ad.com" target="_blank">亚洲国产1区</a>| <a href="http://wwwby113.com" target="_blank">欧美一级艳片视频免费观看</a>| <a href="http://6k6a.com" target="_blank">亚洲天堂视频在线观看</a>| <a href="http://69ru.com" target="_blank">欧美a级一区</a>| <a href="http://2938476.com" target="_blank">久久综合伊人77777尤物</a>| <a href="http://shno1steel.com" target="_blank">国产精品视频精品视频</a>| <a href="http://88844401.com" target="_blank">日韩亚洲欧美精品</a>| <a href="http://eee285.com" target="_blank">亚洲人成在线观看</a>| <a href="http://spidermanseo.com" target="_blank">久久久999精品</a>| <a href="http://aotaotao.com" target="_blank">久久九九99</a>| <a href="http://yunpiwang.com" target="_blank">国产欧美日韩精品一区</a>| <a href="http://cuucs.com" target="_blank">亚洲特级毛片</a>| <a href="http://p5555ww.com" target="_blank">亚洲欧美精品在线</a>| <a href="http://www-4890.com" target="_blank">欧美日韩视频不卡</a>| <a href="http://stt788.com" target="_blank">亚洲精品国产欧美</a>| <a href="http://7788444.com" target="_blank">亚洲精品免费在线播放</a>| <a href="http://681656.com" target="_blank">免费不卡在线观看av</a>| <a href="http://er65.com" target="_blank">免费观看不卡av</a>| <a href="http://www87bbw.com" target="_blank">伊人久久男人天堂</a>| <a href="http://428820.com" target="_blank">久久久噜噜噜久久中文字免</a>| <a href="http://9955377.com" target="_blank">久久久精品性</a>| <a href="http://797298.com" target="_blank">好看的日韩av电影</a>| <a href="http://babylonmovi.com" target="_blank">久久精品女人的天堂av</a>| <a href="http://caosee.com" target="_blank">久久午夜电影</a>| <a href="http://www18818.com" target="_blank">1204国产成人精品视频</a>| <a href="http://340996.com" target="_blank">噜噜噜躁狠狠躁狠狠精品视频</a>| <a href="http://376524.com" target="_blank">蜜臀a∨国产成人精品</a>| <a href="http://xiaobi13.com" target="_blank">亚洲第一黄网</a>| <a href="http://58yewu.com" target="_blank">欧美国产欧美亚洲国产日韩mv天天看完整 </a>| <a href="http://4545www.com" target="_blank">免费久久99精品国产自在现线</a>| <a href="http://0000zz.com" target="_blank">久久综合网络一区二区</a>| <a href="http://writeingo.com" target="_blank">伊人夜夜躁av伊人久久</a>| <a href="http://3dmh133.com" target="_blank">麻豆9191精品国产</a>| <a href="http://exsecular.com" target="_blank">欧美激情在线免费观看</a>| <a href="http://r4747.com" target="_blank">日韩视频在线一区二区三区</a>| <a href="http://www57669.com" target="_blank">欧美激情小视频</a>| <a href="http://ekuyun.com" target="_blank">亚洲伦理在线观看</a>| <a href="http://aabbcc11.com" target="_blank">亚洲男女毛片无遮挡</a>| <a href="http://www-333304.com" target="_blank">国产精品视频男人的天堂</a>| <a href="http://3451215.com" target="_blank">香蕉成人伊视频在线观看 </a>| <a href="http://8x1080x.com" target="_blank">精品动漫3d一区二区三区</a>| <a href="http://teloregen.com" target="_blank">亚洲午夜久久久久久尤物</a>| <a href="http://avhai.com" target="_blank">亚洲视频一区在线观看</a>| <a href="http://www-57549.com" target="_blank">性欧美video另类hd性玩具</a>| <a href="http://nvpuow.com" target="_blank">国产精品揄拍500视频</a>| <a href="http://ahqdlq.com" target="_blank">欧美一区二区日韩</a>| <a href="http://4399360.com" target="_blank">欧美国产先锋</a>| <a href="http://analemi.com" target="_blank">亚洲伊人色欲综合网</a>| <a href="http://8332777.com" target="_blank">国产欧美一区二区三区沐欲</a>| <a href="http://tp-88.com" target="_blank">久久婷婷色综合</a>| <a href="http://www31931.com" target="_blank">日韩午夜精品</a>| <a href="http://www99mmnn.com" target="_blank">久久久久久噜噜噜久久久精品</a>| <a href="http://555hhu.com" target="_blank">亚洲福利视频一区</a>| <a href="http://jizz16.com" target="_blank">欧美午夜一区二区福利视频</a>| <a href="http://3597777.com" target="_blank">性欧美18~19sex高清播放</a>| <a href="http://628155.com" target="_blank">欧美不卡视频一区发布</a>| <a href="http://www-49386.com" target="_blank">一区二区三区蜜桃网</a>| <a href="http://bgdete.com" target="_blank">国产欧美一区二区精品仙草咪</a>| <a href="http://www-577511.com" target="_blank">久久久午夜精品</a>| <a href="http://jj8518.com" target="_blank">99re6热只有精品免费观看</a>| <a href="http://4106446.com" target="_blank">久久精品五月婷婷</a>| <a href="http://817794.com" target="_blank">99re成人精品视频</a>| <a href="http://yckjwb.com" target="_blank">国外视频精品毛片</a>| <a href="http://0359222.com" target="_blank">欧美日韩免费看</a>| <a href="http://3344xo.com" target="_blank">久久久999精品免费</a>| <a href="http://1515t.com" target="_blank">日韩午夜在线播放</a>| <a href="http://lctongda.com" target="_blank">女仆av观看一区</a>| <a href="http://15149cc.com" target="_blank">欧美一区二区三区在线看</a>| <a href="http://9e67.com" target="_blank">亚洲美女网站</a>| <a href="http://aqdit2022.com" target="_blank">狠狠色综合色区</a>| <a href="http://mfgun.com" target="_blank">欧美午夜大胆人体</a>| <a href="http://phdy999.com" target="_blank">免费成人在线观看视频</a>| <a href="http://8946286.com" target="_blank">性做久久久久久免费观看欧美 </a>| <a href="http://lusaier.com" target="_blank">亚洲精品视频免费</a>| <a href="http://5xxm.com" target="_blank">久久亚洲国产成人</a>| <a href="http://xxxyyy168.com" target="_blank">亚洲女爱视频在线</a>| <a href="http://qq666qq.com" target="_blank">日韩视频一区二区在线观看 </a>| <a href="http://gffffg.com" target="_blank">欧美日韩mv</a>| <a href="http://aqdav037.com" target="_blank">久久婷婷蜜乳一本欲蜜臀</a>| <a href="http://wanshunpu.com" target="_blank">亚洲调教视频在线观看</a>| <a href="http://127mingdao.com" target="_blank">亚洲国产另类久久久精品极度</a>| <a href="http://xiaoyaer.com" target="_blank">欧美在线视频一区二区</a>| <a href="http://xjhzgy.com" target="_blank">一区二区国产日产</a>| <a href="http://www3344uh.com" target="_blank">亚洲国产天堂久久综合</a>| <a href="http://lalandapps.com" target="_blank">国产区亚洲区欧美区</a>| <a href="http://eee285.com" target="_blank">欧美日韩在线视频一区</a>| <a href="http://boocnn.com" target="_blank">欧美不卡一卡二卡免费版</a>| <a href="http://qiezisp2.com" target="_blank">久久国产精品久久国产精品</a>| <a href="http://w3e8.com" target="_blank">亚洲免费视频一区二区</a>| <a href="http://q731.com" target="_blank">一区二区三区色</a>| <a href="http://js6996.com" target="_blank">99这里只有久久精品视频</a>| <a href="http://995688.com" target="_blank">亚洲国产一区二区a毛片</a>| <a href="http://7776701.com" target="_blank">免费欧美网站</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>