锘??xml version="1.0" encoding="utf-8" standalone="yes"?>午夜精品免费,亚洲网址在线,国产精品久久久久永久免费观看 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涔熷氨娌℃湁鐮旂┒浜嗭紝鍋跺皵鏈夐棽鍔熷か錛屼篃鏄帺鐜?DMAX鍜孶NITY3D銆?鎰熻涓嶄細3DMAX錛屾槸涓縐嶅眬闄愩?/p>

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

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

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

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

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

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

 

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

鏍規(guī)嵁瀹氱悊錛屾垜浠煡閬擄紝 鑻ヤ袱涓偣浠ユ煇涓鐐逛負闀滃儚錛屽垯涓や釜鐐圭殑鍧愭爣涔嬪拰闄や互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)

 

鎹㈡垚鐭╅樀褰㈠紡鍒欎負

                            锝?-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 瑙﹀彂鏂瑰紡鐨勬ц兘宸紓璇В錛堝畾鎬у垎鏋愶級</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; ">騫蟲椂澶у浣跨敤 epoll 鏃墮兘鐭ラ亾鍏朵簨浠惰Е鍙戞ā寮忔湁榛樿鐨?level-trigger 妯″紡鍜岄氳繃 EPOLLET 鍚敤鐨?edge-trigger 妯″紡涓ょ銆備粠 epoll 鍙戝睍鍘嗗彶鏉ョ湅錛屽畠鍒氳癁鐢熸椂鍙湁 edge-trigger 妯″紡錛屽悗鏉ュ洜瀹規(guī)槗浜х敓 race-cond 涓斾笉鏄撹寮鍙戣呯悊瑙o紝鍙堝鍔犱簡 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 閮戒細榪斿洖璇?fd錛涜?edge-trigger 妯″紡涓嬪彧鏈夋煇涓?fd 浠?unreadable 鍙樹負 readable 鎴栦粠 unwritable 鍙樹負 writable 鏃訛紝epoll_wait 鎵嶄細榪斿洖璇?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 鍙戠敓鏃朵笉浼氬皢鍏朵粠 ready list 涓Щ闄わ紝鐣ヤ負澧炲ぇ浜?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 鐩稿叧緋葷粺璋冪敤鍚э紵涓轟簡緇曡繃楗挎闂錛宔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紭鍔垮湪浜庡噺灝戜簡姣忔 epoll_wait 鍙兘闇瑕佽繑鍥炵殑 fd 鏁伴噺錛屽湪騫跺彂 event 鏁伴噺鏋佸鐨勬儏鍐典笅鑳藉姞蹇?epoll_wait 鐨勫鐞嗛熷害錛屼絾鍒繕浜嗚繖鍙槸閽堝 epoll 浣撶郴鑷繁鑰岃█鐨勬彁鍗囷紝涓庢鍚屾椂 user app 闇瑕佸鍔犲鏉傜殑閫昏緫銆佽姳璐規(guī)洿澶氱殑 cpu/mem 涓庡叾閰嶅悎宸ヤ綔錛屾諱綋鎬ц兘鏀剁泭絀剁珶濡備綍錛熷彧鏈夊疄闄呮祴閲忔墠鐭ラ亾錛屾棤娉曚竴姒傝岃銆備笉榪囷紝涓轟簡闄嶄綆澶勭悊閫昏緫澶嶆潅搴︼紝甯哥敤鐨勪簨浠跺鐞嗗簱澶ч儴鍒嗛兘閫夋嫨浜?level-trigger 妯″紡錛堝 libevent銆乥oost::asio絳夛級</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; ">鍙傝冭祫鏂欙細</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[鍓嶅嚑澶╁湪緗戜笂鎼滃埌涓孌墊敼鍙樻帶鍒跺彴瀛楃棰滆壊鐨勪唬鐮侊紝鐢ㄥ畠鍋氫簡涓涓唬瀛椾綋棰滆壊鐨凩og杈撳嚭銆傛劅瑙夎繕鏄瘮杈冧笉閿欑殑銆?br><br>  /*<br>  0 榛戣壊銆1銆娣辮摑銆錛掔豢銆錛撴祬钃?br>  錛旀殫綰€錛曟殫绱錛栧榛勩錛楁祬鐧?br>  錛樻祬鐏般錛欎寒钃濄錛戯紣浜豢銆錛戯紤闈炲父钃?br>  錛戯紥澶х孩銆錛戯紦浜傳銆錛戯紨榛勩錛戯紩鐧姐<br>  */<br><br>榪欐槸閭f浠g爜銆傛垜宸插仛鎴愪簡ANSI鍜孶NICODE閮芥敮鎸佺殑鐗堟湰錛屽叿浣撲負浠涔堣榪欐牱錛屽彲浠ョ湅鍓嶄竴綃囧叧浜庡瓧絎︾紪鐮佷笌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銆銆鏅氫笂鍥炴潵緇х畫瀹屽杽鏃╀笂鐨勫伐浣滐紝灝哃og杈撳嚭鍋氭垚浜嗗彲浠ラ噸瀹氬悜鐨勫眰嬈$粨鏋勶紝騫舵斁鍏ヤ簡涓涓彲浠ュ叡浜殑Share鍔ㄦ佸簱涓傝繖鏍峰氨鍙互淇濇寔Log杈撳嚭緋葷粺鐨勫敮涓鍜屽叡浜紙闈欐丩ib涓叡鏃犳硶鍏變韓錛?
      鐢ㄧ櫨搴︽悳浜嗕竴涓嬭繖涓緭鍑洪棶棰橈紝紿佺劧鍙戠幇浜嗗叾涓ゥ濡欙紝鍘熸潵Unicode闇瑕佹湰鍦板寲淇℃伅銆?br>銆銆緇忔祴璇曞彂鐜頒簡濡備笅瑙勫緥
/*
  銆銆銆 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[     鎽樿: 鏈澶х殑閬楁喚鑾繃浜庡ぇ瀛﹂噷娌″仛榪囧暐鍍忔牱鐨勪笢瑗匡紝璁稿涓滆タ閮界儌鍦ㄤ簡瀛︽牎閭g牬紜洏閲岋紝灝辮繖鐐逛簡錛屾湁闇瑕佺殑鍙互涓嬭澆銆?<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[     鎽樿: 璋冭瘯鏄竴涓▼搴忓憳鏈鍩烘湰鐨勬妧鑳斤紝鍏墮噸瑕佹х敋鑷寵秴榪囧涔犱竴闂ㄨ璦銆備笉浼氳皟璇曠殑紼嬪簭鍛樺氨鎰忓懗鐫浠栧嵆浣夸細涓闂ㄨ璦錛屽嵈涓嶈兘緙栧埗鍑轟換浣曞ソ鐨勮蔣浠躲?<br> <br>榪欓噷鎴戠畝瑕佺殑鏍規(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>鎴戞兂涓鑸叕鍙稿璇█鏂歸潰錛屾諱細鍙樼潃鏂規(guī)硶鑰冧笅闈㈢殑榪欎簺闂銆傝繖鍙槸鍑虹幇鐨勪竴縐嶅艦寮忋傛湁鍟ュソ棰樻榪庡ぇ瀹跺垎浜紝涓嬮潰榪欎簺鏄垜鑷繁YY鐨勩傜湅棰樼殑鍏勫紵鍙渶鍦ㄨ嚜宸卞績閲屼綔絳斿氨琛岋紝涓瀹氫笉瑕佸繕浜嗗嚑涔庢瘡棰橀兘鏈変竴涓?涓轟粈涔堚濄?<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>璁ㄨ浼氱粨璐?/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[     鎽樿: 鍓嶅嚑澶╁彂浜嗕竴綃囧叧浜庝竴涓紦鍐插尯婧㈠嚭闂鐨勮璁恒傚綋鐒舵槸楗卞彈闈炴剰銆傛湁浜鴻榪欐槸鎾炲ぇ榪愶紝鏈変漢璇磋繖鏄棤鑱娿備絾鏄憿錛屼粠璁ㄨ涓紝鎴戜滑鍙戠幇浜嗘洿澶氱殑闂銆傚鍒頒簡鏇村鐨勭煡璇嗐?鍏跺疄璁稿鏃跺欐垜浠湁蹇呰鈥滄挒澶ц繍鈥濓紝浣嗘槸鍦ㄦ挒澶ц繍鍑洪棶棰樹箣鍚庯紝涓瀹氳寮勬竻妤氫簨鎯呯殑鍘熷洜銆?鍗氬弸鐨勫洖澶嶅凡緇忓厖鍒嗚鏄庝簡褰撴椂鐨勯棶棰樸?浣嗘槸鎻愬嚭浜嗕竴涓柊闂錛氬氨鏄復鏃跺彉閲忓垎閰嶆椂鐨勭┖闂撮棶棰樸?<br>姣斿璇存湁鍒嗚繛緇垎閰嶄簡3涓復鏃跺彉閲忥紝鍗村彂鐜拌繖3涓復鏃跺彉閲忕殑鍧鍧涓嶆槸鎸夊彉閲忓ぇ灝忚繛緇傦紙濡備袱涓狪NT鍙橀噺闂寸浉宸槸12錛岃岄潪棰勬湡鐨?錛?鍙堟垨鑰呭悗澹版槑鐨勫彉閲忓湴鍧鍗磋窇鍦ㄤ簡鍓嶅ご錛夈? <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>璁ㄨ浼氾細涓涓笉鏄棶棰樼殑闂!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

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

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[     鎽樿: 寮濮嬪啓浜嗕竴綃囷紝閫氳繃璇存槑浠栦滑浜х敓浜嗘嫹璐濓紝鑰屽鑷磒涓嶈兘鎴愬姛鍒嗛厤銆備絾騫舵湭鎻愬嚭浜嬪疄鏍規(guī)嵁錛屼笅闈㈡垜浠潵浠旂粏鐪嬬湅鍏蜂綋鍘熷洜銆?<br> <br>鎴戜滑闇瑕佸紕娓呬袱鐐癸細1銆乵ain鍑芥暟涓殑p涓嶮yNew鍑芥暟涓殑p鏄笉鏄竴鏍鳳紱2銆佸鏋滀笉涓鏍鳳紝鏄庝箞瀵艱嚧浜嗕笉涓鏍風殑銆?<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>鍐掓場鎺掑簭涓庨夋嫨鎺掑簭鐨勪笉鍚屻佸揩閫熸帓搴忎笌閫夋嫨鎺掑簭鐨勭粨鍚?/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[     鎽樿: 鐩墠騫夸負浣跨敤鐨勫揩閫熸帓搴忓拰閫夋嫨鎺掑簭鑱斿悎浣跨敤錛屼篃浼氭湁鎰忔兂涓嶅埌鐨勬彁鍗囷紒 <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        //灝嗗綋鍓嶆寚鍚戠┖闂插唴瀛樿搗濮嬪湴鍧浣滀負鍙嶅洖鍦板潃   
12        unsigned char* p = mStartPotinter;   
13        //鍙栧嚭絀洪棽鍖哄煙鍓?瀛楄妭鐨勫鹼紝璧嬪肩粰絀洪棽鍦板潃   
14        //鍥犱負鍓嶅洓瀛楄妭涓瓨鏀句簡涓嬩竴涓狟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瀛樻斁浜嗕笅涓涓狟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

 

 

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

mStartPotinter浣滀負浜岀淮鎸囬拡鐨勬椂鍊欙紝鐩稿綋浜庢槸涓緋誨垪鐨剈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}
 

 

 

涓嶆兂澶氳В閲婁簡錛岀瘡銆備及璁″鐪嬪嚑鍒嗙鍟ラ兘鏄庣櫧浜嗭紒

 

 



]]>
[杞琞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璁茶堪浜咰++瀵硅薄鍦ㄤ互涓嬫儏鍐電殑鍐呭瓨甯冨眬銆傚煎緱涓鐪嬶紒
1錛夋湁鎴愬憳鍙橀噺鐨勬儏鍐點?

2錛夋湁閲嶅緇ф壙鐨勬儏鍐點?

3錛夋湁铏氭嫙緇ф壙鐨勬儏鍐點?

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


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

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

 

 

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

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

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


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

 


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

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

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

鍓嶄簺澶╋紝緙栫▼搴忔槸鐢ㄥ埌浜嗗緢涔呬互鍓嶅啓鐨凜紼嬪簭錛屾兂鎶婇噷闈㈢殑鍑芥暟鍒╃敤璧鋒潵錛岃繛鎺ュ彂鐜板嚭鐜頒簡鎵句笉鍒板叿浣撳嚱鏁扮殑閿欒錛?/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);
}

榪欐牱緙栬瘧浼氫駭鐢熼敊璇痗pp.obj : error LNK2001: unresolved external symbol "int __cdecl add(int,int)" (?add@@YAHHH@Z)錛屽師鍥犳槸鎵句笉鍒癮dd鐨勭洰鏍囨ā鍧?/p>

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

渚嬪

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

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

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

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

涓轟簡瑙e喅榪欎釜闂C++閲囩敤浜唀xtern "C",榪欏氨鏄垜浠殑涓婚錛屾兂瑕佸埄鐢ㄤ互鍓嶇殑C紼嬪簭搴擄紝閭d箞浣犲氨瑕佸浼氬畠錛屾垜浠彲浠ョ湅浠ヤ笅鏍囧噯澶存枃浠朵綘浼氬彂鐜幫紝寰堝澶存枃浠墮兘鏈変互涓嬬殑緇撴瀯

#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;
}

榪欐椂婧愭枃浠朵負*.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);
}

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

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

]]>[杞琞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>閲忋傛瘮濡備綘瑕佸仛涓涓彍鍗曢」鍛戒護鍚嶅拰鍑芥暟鎸囬拡緇勬垚鐨勭粨鏋勪綋鐨勬暟緇勶紝騫朵笖甯屾湜鍦ㄥ嚱鏁板悕鍜岃彍鍗曢」鍛戒護鍚嶄箣闂存湁鐩磋鐨勩佸悕瀛椾笂鐨勫叧緋匯傞偅灝卞彲浠ヤ嬌鐢細瀹忓弬鏁?# <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>// 榪欓噷榪欎釜璇彞灝嗗睍寮涓猴細<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箞瀹為檯浣跨敤涓細鍑虹幇涓嬮潰鎵紺虹殑鏇挎崲榪囩▼錛?<br>WARN_IF (divider == 0);<br>琚浛鎹負<br>do {<br>        if (divider == 0)<br>fprintf(stderr, "Warning" "divider == 0" "\n");<br>} while(0);<br>榪欐牱姣忔divider錛堥櫎鏁幫級涓?鐨勬椂鍊欎究浼氬湪鏍囧噯閿欒嫻佷笂杈撳嚭涓涓彁紺轟俊鎭?<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>[杞琞閫氳繃渚嬪瓙瀛︿範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杈句漢

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

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

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

濡傛灉瑕佸涔燣ua, 瀹樻柟緗戠珯涓婄殑Reference鏄繀澶囩殑錛屼笂闈㈡湁姣忎釜鍛戒護鐨勭敤娉曪紝闈炲父璇?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, 鎵撳叆浠ヤ笅鍛戒護鍗沖彲,
tar -zxvf lua-5.0.2.tar.gz
cd lua-5.0.2
sh ./configure
make
榪欐牱灝監(jiān)K浜嗐?br>涓轟簡浠ュ悗浣跨敤鏂逛究錛屾渶濂芥妸bin鐩綍鍔犲叆鍒皃ath閲岄潰銆?/p>

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

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

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

杈撳嚭緇撴灉搴旇鏄細
Hello World.

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

5.璇曡瘯鐪?br>鍦↙ua涓湁涓嶅皯瀛楃涓茬殑澶勭悊鎿嶄綔錛屾湰嬈$殑璇懼悗璇曡瘯鐪嬬殑鍐呭灝辨槸錛屾壘鍑鴻繛鎺ヤ袱涓瓧絎︿覆
鐨勬搷浣滐紝
騫朵笖print鍑烘潵銆?br>--

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

1. 鍑芥暟鐨勪嬌鐢?br>浠ヤ笅紼嬪簭婕旂ず浜嗗浣曞湪Lua涓嬌鐢ㄥ嚱鏁? 鍙婂眬閮ㄥ彉閲?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灝卞彲浠ヤ簡.
鏈緥鍑芥暟鐨勪綔鐢ㄦ槸宸茬煡鐩磋涓夎褰㈢洿瑙掕竟, 姹傛枩杈歸暱搴? 鍙傛暟a,b鍒嗗埆琛ㄧず鐩磋杈歸暱,
鍦ㄥ嚱鏁板唴瀹氫箟浜唋ocal褰㈠彉閲忕敤浜庡瓨鍌ㄦ枩杈圭殑騫蟲柟. 涓嶤璇█鐩稿悓, 瀹氫箟鍦ㄥ嚱鏁板唴鐨勪唬
鐮佷笉浼氳鐩存帴鎵ц, 鍙湁涓葷▼搴忚皟鐢ㄦ椂鎵嶄細琚墽琛?
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

紼嬪簭璇存槑
榪欓噷鍋朵滑鐢ㄥ埌浜唂or璇彞
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)鐨勮瘯璇曠湅涓彁鍒扮殑錛屼笉鐭ラ亾浣犱滑絳斿浜嗘病鏈夈?br>铏界劧榪欓噷i鏄竴涓暣鍨嬮噺錛孡ua鍦ㄥ鐞嗙殑鏃跺欎細鑷姩杞垚瀛楃涓插瀷錛屼笉闇鍋朵滑璐瑰績銆?/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,
鍝曠敤浜嗗涓猠lseif, 涔熸槸涓涓猠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涓櫎浜唂or寰幆浠ュ, 榪樻敮鎸佸縐嶅驚鐜? 璇風敤while...do鍜宺epeat...until鏀瑰啓鏈枃
涓殑for紼嬪簭

--
閫氳繃渚嬪瓙瀛︿範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

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

紼嬪簭絎簩閮ㄥ垎, 浠ュ瓧絎︿覆鍋氫負涓嬫爣, 鍙堝悜table鍐呭鍔犱簡涓涓厓绱? 榪欑table闈炲父
鍍廠TL閲岄潰鐨刴ap. table涓嬫爣鍙互涓篖ua鎵鏀寔鐨勪換鎰忓熀鏈被鍨? 闄や簡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鏃? 鍥犱負娌℃湁鎸囧悜table鐨勫彉閲忎簡, 鎵浠ua浼氳嚜鍔ㄩ噴鏀総able鎵鍗犲唴瀛?

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, 瀹氫箟鍦ㄤ簡澶able涔嬪唴, 灝弔able鐨?
table鍚嶇渷鐣ヤ簡.
鏈鍚庝竴琛宮yPolygon[2].x錛屽氨鏄ぇtable閲岄潰灝弔able鐨勮闂柟寮?

--
閫氳繃渚嬪瓙瀛︿範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

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


2.浠able鍋氫負鍙傛暟
渚媏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}榪欏彞鍙傛暟娌″姞鍦嗘嫭鍙? 鍥犱負浠ュ崟涓猼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鎴愪負涓縐嶇被浼糥ML鐨勬暟鎹弿榪拌璦
* e09涓璫ontact{...}, 鏄竴縐嶅嚱鏁扮殑璋冪敤鏂規(guī)硶, 涓嶈寮勬販浜?
* [[...]]鏄〃紺哄琛屽瓧絎︿覆鐨勬柟娉?
* 褰撲嬌鐢– API鏃舵縐嶆柟寮忕殑浼樺娍鏇存槑鏄? 鍏朵腑contact{..}閮ㄥ垎鍙互鍙﹀瀛樻垚涓閰嶇疆鏂?
浠?

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

--

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

1.綆浠?

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

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

2.Lua鐨凜搴?

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

Lua鐨凜搴撴彁渚涗竴緋誨垪API:
* 綆$悊鍏ㄥ眬鍙橀噺
* 綆$悊tables
* 璋冪敤鍑芥暟
* 瀹氫箟鏂板嚱鏁? 榪欎篃鍙互瀹屽叏鐢盋瀹炵幇
* 鍨冨溇鏀墮泦鍣℅arbage collector, 铏界劧Lua鍙互鑷姩榪涜, 浣嗗線寰涓嶆槸绔嬪嵆鎵ц鐨?
鎵浠ュ瀹炴椂鎬ц姹傛瘮杈冮珮鐨勭▼搴? 浼氳嚜宸辮皟鐢ㄥ瀮鍦炬敹闆嗗櫒
* 杞藉叆騫舵墽琛孡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噴鍣? 杈撳叆鐨勬瘡琛屽瓧絎﹂兘浼氳瑙i噴鎴怢ua騫舵墽琛?

紼嬪簭璇存槑
* #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噴鍣? 杈撳叆鐨勬瘡琛屽瓧絎﹂兘浼氳瑙i噴鎴怢ua騫舵墽琛?
涓庝笂渚嬩笉鍚岀殑鏄? 鏈緥璋冪敤浜哃ua鐨勪竴浜涙爣鍑嗗簱.

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

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

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

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

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

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

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

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

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

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

extern "C" { // 榪欐槸涓狢++紼嬪簭, 鎵浠ヨextern "C",
// 鍥犱負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涓繃紼嬪伓浠笂嬈″凡緇忚榪囦簡, 鎵浠ヨ繖嬈″彧璇磋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.鍏ㄥ眬鍙橀噺
涓婇潰鍋朵滑鐢ㄥ埌浜唋ua_getglobal()浣嗗茍娌℃湁璇︾粏璁? 榪欓噷鍋朵滑鍐嶄婦涓や釜灝忎緥瀛愭潵璇翠笅鍏ㄥ眬
鍙橀噺
lua_getglobal()鐨勪綔鐢ㄥ氨鏄妸lua涓叏灞鍙橀噺鐨勫煎帇鍏ユ爤
lua_getglobal(L, "z");
z = (int)lua_tonumber(L, 1);
lua_pop(L, 1);
鍋囪Lua紼嬪簭涓畾涔変簡涓涓叏灞鍙橀噺z, 榪欐灝忕▼搴忓氨鏄妸z鐨勫煎彇鍑烘斁鍏鐨勫彉閲弞涓?

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

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

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

1.鍓嶈█
涓婃鍋惰鍒頒粠C/C++涓皟鐢↙ua鐨勫嚱鏁? 鐒跺悗灝辨湁鏈嬪弸闂粠Lua涓浣曡皟鐢–/C++鐨?
鍑芥暟, 鎵浠ュ伓浠繖嬈″氨鏉ヨ璇磋繖涓棶棰? 棣栧厛鍋朵滑浼氬湪C++涓緩绔嬩竴涓嚱鏁? 鐒跺悗
鍛婄煡Lua鏈夎繖涓嚱鏁? 鏈鍚庡啀鎵ц瀹? 鍙﹀, 鐢變簬鍑芥暟涓嶆槸鍦↙ua涓畾涔夌殑, 鎵浠?
鏃犳硶紜畾鍑芥暟鐨勬紜? 鍙兘鍦ㄨ皟鐢ㄨ繃紼嬩腑浼氬嚭閿? 鍥犳鍋朵滑榪樹細璇磋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寮濮嬬紪鍙風殑,
鎵浠ユ爤欏跺厓绱犵殑搴忓彿涔熺浉褰撲簬鏍堜腑鐨勫厓绱犱釜鏁? 鍦ㄨ繖閲? 鏍堜腑鍏冪礌鐨勪釜鏁板氨
鏄紶鍏ョ殑鍙傛暟涓暟.
* for寰幆璁$畻鎵鏈変紶鍏ュ弬鏁扮殑鎬誨拰. 榪欓噷鐢ㄥ埌浜嗘暟鍊艱漿鎹ua_tonumber().
* 鐒跺悗鍋朵滑鐢╨ua_pushnumber()鎶婂鉤鍧囧煎拰鎬誨拰push鍒版爤涓?
* 鏈鍚? 鍋朵滑榪斿洖2, 琛ㄧず鏈変袱涓繑鍥炲?
* 鍋朵滑铏界劧鍦–++涓畾涔変簡average()鍑芥暟, 浣嗗伓浠殑Lua紼嬪簭騫朵笉鐭ラ亾, 鎵浠ラ渶
瑕佸湪main鍑芥暟涓姞鍏?

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

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

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

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

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

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

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

鑷蟲, 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娓告垙緙栫▼澶у笀鎶宸с嬩笂鐪嬪埌鐨勮繖涓や釜鍑芥暟錛屽綋鏃惰寰楀緢鐗涜訛紝浜庢槸灝辮涓嬫潵浜嗭紝涓嶈繃鑷充粖娌℃湁鎬庝箞鐢ㄥ埌錛屾垜鎯充及璁′互鍚庝細鏈夌敤鍚с?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];//鍙栭鍏冪礌浣滀負鍒掑垎鐐?/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://sdjzzs.com" target="_blank">久久青草欧美一区二区三区</a>| <a href="http://w7727.com" target="_blank">国产在线精品一区二区中文</a>| <a href="http://www909059.com" target="_blank">羞羞色国产精品</a>| <a href="http://snis675.com" target="_blank">亚洲国产小视频</a>| <a href="http://xb735.com" target="_blank">久久精品国产99</a>| <a href="http://hcbr365.com" target="_blank">亚洲第一页在线</a>| <a href="http://799868.com" target="_blank">这里是久久伊人</a>| <a href="http://8w82.com" target="_blank">亚洲国产精品va在线观看黑人</a>| <a href="http://785448.com" target="_blank">国产精品一区二区黑丝</a>| <a href="http://sese135.com" target="_blank">欧美日韩国产小视频</a>| <a href="http://333666333.com" target="_blank">玖玖视频精品</a>| <a href="http://www909059.com" target="_blank">欧美jizz19性欧美</a>| <a href="http://www90aaa.com" target="_blank">欧美综合二区</a>| <a href="http://www-13413.com" target="_blank">亚洲欧美制服另类日韩</a>| <a href="http://3644688.com" target="_blank">9国产精品视频</a>| <a href="http://392294.com" target="_blank">亚洲精品一区二区三区在线观看</a>| <a href="http://www-q28.com" target="_blank">韩国在线视频一区</a>| <a href="http://wwwnnnn.com" target="_blank">国产亚洲欧美一区在线观看</a>| <a href="http://hnspygxjscyfwzx.com" target="_blank">欧美午夜在线</a>| <a href="http://244223.com" target="_blank">亚洲手机在线</a>| <a href="http://www249aaa.com" target="_blank">欧美与欧洲交xxxx免费观看</a>| <a href="http://www-132377.com" target="_blank">亚洲视频图片小说</a>| <a href="http://er65.com" target="_blank">一本色道精品久久一区二区三区 </a>| <a href="http://74w4.com" target="_blank">欧美国产日韩免费</a>| <a href="http://yjsp8888.com" target="_blank">久久久久久亚洲精品中文字幕</a>| <a href="http://laoyewo.com" target="_blank">亚洲一区二区三区精品视频</a>| <a href="http://744734.com" target="_blank">日韩系列欧美系列</a>| <a href="http://626tw.com" target="_blank">亚洲国产精品一区二区三区</a>| <a href="http://www-8438.com" target="_blank">伊人婷婷欧美激情</a>| <a href="http://794579.com" target="_blank">影音先锋在线一区</a>| <a href="http://cp50088.com" target="_blank">一区二区视频欧美</a>| <a href="http://www55avav.com" target="_blank">激情久久五月</a>| <a href="http://118936.com" target="_blank">伊人成人开心激情综合网</a>| <a href="http://qvod777.com" target="_blank">国产综合久久</a>| <a href="http://www333444123.com" target="_blank">国产综合在线看</a>| <a href="http://012492.com" target="_blank">国模精品一区二区三区</a>| <a href="http://r4747.com" target="_blank">国内精品国产成人</a>| <a href="http://305838.com" target="_blank">久久天天躁狠狠躁夜夜爽蜜月 </a>| <a href="http://ycpeixun.com" target="_blank">欧美激情亚洲一区</a>| <a href="http://5252bnet.com" target="_blank">欧美激情欧美狂野欧美精品 </a>| <a href="http://788997.com" target="_blank">欧美丰满少妇xxxbbb</a>| <a href="http://zucai168.com" target="_blank">免费毛片一区二区三区久久久</a>| <a href="http://ztsctgs.com" target="_blank">久久天堂av综合合色</a>| <a href="http://www-6410c.com" target="_blank">欧美日韩亚洲激情</a>| <a href="http://bauyu121.com" target="_blank">狂野欧美一区</a>| <a href="http://zhongrenma.com" target="_blank">欧美电影打屁股sp</a>| <a href="http://saohu79.com" target="_blank">欧美日韩午夜</a>| <a href="http://dgxinshidai.com" target="_blank">国产精品久久久久久久久久尿</a>| <a href="http://www-222304.com" target="_blank">国产精品久久国产精品99gif</a>| <a href="http://92ebook.com" target="_blank">国产精品久久久久免费a∨</a>| <a href="http://hbshwx.com" target="_blank">国产老女人精品毛片久久</a>| <a href="http://www94816.com" target="_blank">国产日韩欧美一区二区</a>| <a href="http://69xxx6.com" target="_blank">好吊色欧美一区二区三区四区</a>| <a href="http://www92y.com" target="_blank">尤物精品国产第一福利三区</a>| <a href="http://884v.com" target="_blank">亚洲欧洲日本在线</a>| <a href="http://456985.com" target="_blank">亚洲伊人一本大道中文字幕</a>| <a href="http://59199m.com" target="_blank">欧美中文字幕视频在线观看</a>| <a href="http://xindefalv.com" target="_blank">欧美经典一区二区三区</a>| <a href="http://zhouqie.com" target="_blank">亚洲午夜av电影</a>| <a href="http://xmjhyey.com" target="_blank">久久国产一二区</a>| <a href="http://2589999.com" target="_blank">免费日韩av电影</a>| <a href="http://caoav8.com" target="_blank">欧美日韩一区综合</a>| <a href="http://bckxy.com" target="_blank">国产在线精品二区</a>| <a href="http://xxdd19.com" target="_blank">欧美激情一区二区三区成人</a>| <a href="http://mgcc37.com" target="_blank">欧美三级不卡</a>| <a href="http://proenhub.com" target="_blank">国产日韩欧美精品</a>| <a href="http://www8xvi.com" target="_blank">亚洲人成网站精品片在线观看</a>| <a href="http://www888x.com" target="_blank">一区二区三区精品国产</a>| <a href="http://ebmsci.com" target="_blank">欧美在线啊v</a>| <a href="http://123-sj.com" target="_blank">欧美国产大片</a>| <a href="http://yw133777.com" target="_blank">一区二区欧美国产</a>| <a href="http://huaihuaihuai.com" target="_blank">久久激情视频</a>| <a href="http://55kam.com" target="_blank">亚洲电影免费</a>| <a href="http://xianqyd.com" target="_blank">美女国产一区</a>| <a href="http://15013010203.com" target="_blank">亚洲精品麻豆</a>| <a href="http://7777525.com" target="_blank">久久大逼视频</a>| <a href="http://emu160.com" target="_blank">欧美日韩色综合</a>| <a href="http://1116333.com" target="_blank">狠狠操狠狠色综合网</a>| <a href="http://wwwhaodd116.com" target="_blank">日韩视频免费</a>| <a href="http://jivbus.com" target="_blank">久久精品国产第一区二区三区</a>| <a href="http://cc28256.com" target="_blank">亚洲电影视频在线</a>| <a href="http://zzzz80.com" target="_blank">亚洲欧美日韩网</a>| <a href="http://17oooo.com" target="_blank">欧美激情小视频</a>| <a href="http://jinlijun.com" target="_blank">国产在线不卡</a>| <a href="http://www8xoy.com" target="_blank">亚洲一区二区三区涩</a>| <a href="http://wwww999.com" target="_blank">麻豆成人在线</a>| <a href="http://kakatok.com" target="_blank">亚洲淫性视频</a>| <a href="http://uu774.com" target="_blank">欧美国产精品劲爆</a>| <a href="http://559dd.com" target="_blank">国产主播精品</a>| <a href="http://gdvapar.com" target="_blank">亚洲一区二区三区四区五区黄</a>| <a href="http://56667r.com" target="_blank">久久综合色播五月</a>| <a href="http://www-82622.com" target="_blank">亚洲视频二区</a>| <a href="http://hkbsi.com" target="_blank">欧美肥婆在线</a>| <a href="http://1194123.com" target="_blank">一区二区亚洲精品</a>| <a href="http://jiujiire.com" target="_blank">极品av少妇一区二区</a>| <a href="http://126film.com" target="_blank">亚洲图片欧美一区</a>| <a href="http://668www.com" target="_blank">欧美高清视频一区二区三区在线观看</a>| <a href="http://555hhu.com" target="_blank">亚洲一卡二卡三卡四卡五卡</a>| <a href="http://278263.com" target="_blank">欧美大片免费</a>| <a href="http://xprinter3d.com" target="_blank">一色屋精品视频在线看</a>| <a href="http://junmatek.com" target="_blank">午夜精彩国产免费不卡不顿大片</a>| <a href="http://cdcpt.com" target="_blank">亚洲第一精品夜夜躁人人爽</a>| <a href="http://www-919198.com" target="_blank">欧美一级二区</a>| <a href="http://musicshq.com" target="_blank">亚洲日本在线观看</a>| <a href="http://hwgjcm.com" target="_blank">日韩亚洲精品视频</a>| <a href="http://66889h.com" target="_blank">蜜桃久久av一区</a>| <a href="http://88848885.com" target="_blank">好吊一区二区三区</a>| <a href="http://ccc982.com" target="_blank">性欧美长视频</a>| <a href="http://ctmhotel.com" target="_blank">国产精品99久久久久久白浆小说 </a>| <a href="http://cpddddcc.com" target="_blank">亚洲国产日韩在线一区模特</a>| <a href="http://663747.com" target="_blank">欧美在线观看视频一区二区</a>| <a href="http://9885888.com" target="_blank">日韩一级大片</a>| <a href="http://yjizz08.com" target="_blank">欧美精品一区二区久久婷婷</a>| <a href="http://8847m.com" target="_blank">亚洲高清资源综合久久精品</a>| <a href="http://www36633.com" target="_blank">久久精品午夜</a>| <a href="http://51duanxinmao.com" target="_blank">欧美一级二区</a>| <a href="http://yymh1056.com" target="_blank">亚洲国产精品小视频</a>| <a href="http://fangsling.com" target="_blank">欧美国产日本</a>| <a href="http://2996611.com" target="_blank">久久久久久久综合</a>| <a href="http://50ud.com" target="_blank">韩国精品久久久999</a>| <a href="http://yw-95588.com" target="_blank">欧美一区二区免费观在线</a>| <a href="http://www-kj777.com" target="_blank">一二三区精品福利视频</a>| <a href="http://414670.com" target="_blank">亚洲免费在线精品一区</a>| <a href="http://xgame8.com" target="_blank">国产精品久久久</a>| <a href="http://neudlac.com" target="_blank">亚洲免费一区二区</a>| <a href="http://555888666.com" target="_blank">亚洲视频免费</a>| <a href="http://18p2.com" target="_blank">国产精品乱码一区二三区小蝌蚪</a>| <a href="http://8331651.com" target="_blank">亚洲视频www</a>| <a href="http://300644.com" target="_blank">一本一本久久</a>| <a href="http://bjzgmember.com" target="_blank">国产精品久久久一区麻豆最新章节</a>| <a href="http://xingmaipet.com" target="_blank">一本在线高清不卡dvd</a>| <a href="http://1116333.com" target="_blank">亚洲高清在线视频</a>| <a href="http://gaobb52.com" target="_blank">欧美成人亚洲成人</a>| <a href="http://xiphosoft.com" target="_blank">av成人免费观看</a>| <a href="http://313cq.com" target="_blank">欧美性猛交xxxx免费看久久久</a>| <a href="http://wwwiqiuxia.com" target="_blank">一区二区三区欧美</a>| <a href="http://9lunli.com" target="_blank">99热这里只有精品8</a>| <a href="http://11b29.com" target="_blank">国产精品白丝jk黑袜喷水</a>| <a href="http://syddzs.com" target="_blank">亚洲影院免费</a>| <a href="http://cc28256.com" target="_blank">午夜精品av</a>| <a href="http://3644688.com" target="_blank">国语自产精品视频在线看8查询8</a>| <a href="http://www387333.com" target="_blank">久久久噜噜噜久久</a>| <a href="http://www497171c.com" target="_blank">久久久久久久久久久久久久一区</a>| <a href="http://739822.com" target="_blank">精品51国产黑色丝袜高跟鞋</a>| <a href="http://musicshq.com" target="_blank">男人天堂欧美日韩</a>| <a href="http://avse98.com" target="_blank">欧美成人激情视频免费观看</a>| <a href="http://yckjwb.com" target="_blank">日韩天天综合</a>| <a href="http://5599912.com" target="_blank">国产精品99久久不卡二区</a>| <a href="http://22400com.com" target="_blank">国产欧美日本在线</a>| <a href="http://expolucy.com" target="_blank">久久亚洲美女</a>| <a href="http://xsjgxx.com" target="_blank">欧美国产视频在线</a>| <a href="http://neudlac.com" target="_blank">亚洲一区三区电影在线观看</a>| <a href="http://ww9494.com" target="_blank">亚洲综合视频1区</a>| <a href="http://xxxbobba.com" target="_blank">国内激情久久</a>| <a href="http://03qt.com" target="_blank">亚洲人成网在线播放</a>| <a href="http://www-333410.com" target="_blank">欧美三级电影一区</a>| <a href="http://q731.com" target="_blank">亚洲片在线观看</a>| <a href="http://gelaimeiwedding.com" target="_blank">亚洲久久成人</a>| <a href="http://66y3.com" target="_blank">国产欧美在线观看</a>| <a href="http://www55747.com" target="_blank">你懂的国产精品永久在线</a>| <a href="http://060607.com" target="_blank">欧美激情视频在线免费观看 欧美视频免费一 </a>| <a href="http://517hc5.com" target="_blank">欧美高清视频一区二区三区在线观看 </a>| <a href="http://eastasp.com" target="_blank">一区二区高清视频</a>| <a href="http://8p3c.com" target="_blank">国产日产亚洲精品</a>| <a href="http://www433ad.com" target="_blank">欧美国产日韩亚洲一区</a>| <a href="http://www-236677.com" target="_blank">欧美精品日韩一区</a>| <a href="http://596361.com" target="_blank">欧美一区二区三区电影在线观看</a>| <a href="http://zzztt04.com" target="_blank">久久久福利视频</a>| <a href="http://5e5b7g.com" target="_blank">99re6这里只有精品视频在线观看</a>| <a href="http://92ye.com" target="_blank">一区二区欧美在线观看</a>| <a href="http://666cmc.com" target="_blank">国产欧美一区二区精品婷婷</a>| <a href="http://tcgo903.com" target="_blank">欧美成人午夜激情视频</a>| <a href="http://yunpiwang.com" target="_blank">国产精品99一区二区</a>| <a href="http://uu774.com" target="_blank">麻豆精品视频在线观看视频</a>| <a href="http://vvvv81.com" target="_blank">欧美日韩国产综合新一区</a>| <a href="http://www151zh.com" target="_blank">先锋影音久久</a>| <a href="http://wwwlywbb.com" target="_blank">美女视频黄a大片欧美</a>| <a href="http://y9z8.com" target="_blank">香蕉久久精品日日躁夜夜躁</a>| <a href="http://pigkrtv.com" target="_blank">久久综合婷婷</a>| <a href="http://479n.com" target="_blank">欧美亚洲视频一区二区</a>| <a href="http://6u6uuu666.com" target="_blank">免费观看成人www动漫视频</a>| <a href="http://dgxinshidai.com" target="_blank">欧美一区二区精品</a>| <a href="http://598327.com" target="_blank">国产乱肥老妇国产一区二</a>| <a href="http://cca22.com" target="_blank">亚洲福利在线视频</a>| <a href="http://wanzhixue.com" target="_blank">国产欧美日韩三级</a>| <a href="http://www-544778.com" target="_blank">亚洲欧洲精品一区二区三区波多野1战4 </a>| <a href="http://caogb.com" target="_blank">国产伦精品一区二区三区高清</a>| <a href="http://cc1024.com" target="_blank">欧美高清一区</a>| <a href="http://91mase.com" target="_blank">国产一区二区黄色</a>| <a href="http://6868681.com" target="_blank">99国产精品</a>| <a href="http://k82net.com" target="_blank">亚洲激情婷婷</a>| <a href="http://lzklpc.com" target="_blank">亚洲少妇最新在线视频</a>| <a href="http://shuoqe.com" target="_blank">亚洲在线观看</a>| <a href="http://495177.com" target="_blank">99亚洲一区二区</a>| <a href="http://1181318.com" target="_blank">久久尤物视频</a>| <a href="http://22241com.com" target="_blank">久久成人综合视频</a>| <a href="http://5588gww.com" target="_blank">欧美三级在线视频</a>| <a href="http://www44552.com" target="_blank">亚洲盗摄视频</a>| <a href="http://89wbw.com" target="_blank">在线观看的日韩av</a>| <a href="http://boocnn.com" target="_blank">亚洲欧洲99久久</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>