锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美成人第一页,亚洲图片欧美一区,欧美激情麻豆http://m.shnenglu.com/maosher/category/10169.htmlzh-cnFri, 18 Feb 2011 12:53:07 GMTFri, 18 Feb 2011 12:53:07 GMT60鏂版墜鐨勬椂鍊欑鍒扮殑棰勫鐞嗗懡浠?/title><link>http://m.shnenglu.com/maosher/archive/2011/02/17/140191.html</link><dc:creator>Brandon</dc:creator><author>Brandon</author><pubDate>Wed, 16 Feb 2011 16:04:00 GMT</pubDate><guid>http://m.shnenglu.com/maosher/archive/2011/02/17/140191.html</guid><wfw:comment>http://m.shnenglu.com/maosher/comments/140191.html</wfw:comment><comments>http://m.shnenglu.com/maosher/archive/2011/02/17/140191.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/maosher/comments/commentRss/140191.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/maosher/services/trackbacks/140191.html</trackback:ping><description><![CDATA[浠婂ぉ涓涓柊鍚屽鏉ラ棶涓涓吀鍨嬬殑棰勫鐞嗙殑闂錛屾垜褰撳勾涔熺鍒拌繖鏍風殑闂錛岃創鍑烘潵錛岃鏇村鐨勪漢鑳界洿鎺ユ悳鍒?br><br> <h1>棰勫鐞嗗懡浠?/h1> <hr> <h2><a name="">#,## </a></h2> <p># 鍜?## 鎿嶄綔絎︽槸鍜?a href="mk:@MSITStore:E:\doc\C++%20璇█鍙傝?chm::/cppreference.com/preproc_details.html#define"><u><font color=#810081>#define</font></u></a>瀹忎嬌鐢ㄧ殑. 浣跨敤# 浣垮湪#鍚庣殑棣栦釜鍙傛暟榪斿洖涓轟竴涓甫寮曞彿鐨勫瓧絎︿覆. 渚嬪, 鍛戒護 </p> <pre> #define to_string( s ) # s </pre> <p>灝嗕細浣跨紪璇戝櫒鎶婁互涓嬪懡浠?</p> <pre> cout << to_string( Hello World! ) << endl; </pre> <p>鐞嗚В涓?</p> <pre> cout << "Hello World!" << endl; </pre> <p>浣跨敤##榪炵粨##鍓嶅悗鐨勫唴瀹? 渚嬪, 鍛戒護 </p> <pre> #define concatenate( x, y ) x ## y ... int xy = 10; ... </pre> <p>灝嗕細浣跨紪璇戝櫒鎶?</p> <pre> cout << concatenate( x, y ) << endl; </pre> <p>瑙i噴涓?</p> <pre> cout << xy << endl; </pre> <p>鐞嗘墍褰撶劧,灝嗕細鍦ㄦ爣鍑嗚緭鍑哄鏄劇ず'10'.</p> <br><br> <h2><a name=line>#line</a> </h2> <em>璇硶:</em> <table bgColor=#ccccff> <tbody> <tr> <td> <pre> #line line_number "filename" </pre> </td> </tr> </tbody> </table> <p>#line鍛戒護鏄敤浜庢洿鏀筥_LINE__ 鍜?__FILE__鍙橀噺鐨勫? 鏂囦歡鍚嶆槸鍙夌殑. __LINE__ 鍜?__FILE__ 鍙橀噺鎻忚堪琚鍙栫殑褰撳墠鏂囦歡鍜岃. 鍛戒護 </p> <pre> #line 10 "main.cpp" </pre> <p>鏇存敼琛屽彿涓?0,褰撳墠鏂囦歡鏀逛負"main.cpp". <br><br><br></p> <h2><a name=predefined>棰勫畾涔夊彉閲?/a> </h2> <p><em>璇硶:</em> <table bgColor=#ccccff> <tbody> <tr> <td> <pre> __LINE__ __FILE__ __DATE__ __TIME__ _cplusplus __STDC__ </pre> </td> </tr> </tbody> </table> </p> <p>涓嬪垪鍙傛暟鍦ㄤ笉鍚岀殑緙栬瘧鍣ㄥ彲鑳戒細鏈夋墍涓嶅悓, 浣嗘槸涓鑸槸鍙敤鐨? <ul> <li>__LINE__ 鍜?__FILE__ 鍙橀噺琛ㄧず姝e湪澶勭悊鐨勫綋鍓嶈鍜屽綋鍓嶆枃浠? <li>__DATE__ 鍙橀噺琛ㄧず褰撳墠鏃ユ湡,鏍煎紡涓?em>month/day/year</em>(鏈?鏃?騫?. <li>__TIME__ 鍙橀噺鎻忚堪褰撳墠鐨勬椂闂?鏍煎紡涓?em>hour:minute:second</em>(鏃?鍒?縐?. <li>_cplusplus 鍙橀噺鍙湪緙栬瘧涓涓狢++紼嬪簭鏃跺畾涔? <li>__STDC__ 鍙橀噺鍦ㄧ紪璇戜竴涓狢紼嬪簭鏃跺畾涔?緙栬瘧C++鏃朵篃鏈夊彲鑳藉畾涔? </li> </ul> <br> <img src ="http://m.shnenglu.com/maosher/aggbug/140191.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/maosher/" target="_blank">Brandon</a> 2011-02-17 00:04 <a href="http://m.shnenglu.com/maosher/archive/2011/02/17/140191.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>濂藉惂錛屾垜琚緛鏈嶄簡鈥斺?鍏充簬 c++ unsigned char http://m.shnenglu.com/maosher/archive/2011/02/13/139977.htmlBrandonBrandonSun, 13 Feb 2011 08:12:00 GMThttp://m.shnenglu.com/maosher/archive/2011/02/13/139977.htmlhttp://m.shnenglu.com/maosher/comments/139977.htmlhttp://m.shnenglu.com/maosher/archive/2011/02/13/139977.html#Feedback0http://m.shnenglu.com/maosher/comments/commentRss/139977.htmlhttp://m.shnenglu.com/maosher/services/trackbacks/139977.html1 unsigned char i;
2 i=-20;
3  涓婇潰涓孌靛緢綆鍗曠殑浠g爜錛屽鏋滆緭鍑轟細鏄粈涔?鍛紵
浠婂ぉ緹ら噷鐨勬柊瀛++鍚屽闂垜錛寀nsighed char 鍜宑har 鏈夊暐鍖哄埆錛屼笂闈㈢殑杈撳嚭浼氭湁浠涔?涓嶅悓
鍦ㄨ繖閲岋紝鎴戝厛閯欒涓涓嬭嚜宸憋紝鎴戠洿瑙傜殑鐞嗚В涓洪氬父鐨?棣栦綅絎﹀彿浣嶏紝鐒跺悗涓笅鐨勫氨鏄緭鍏ユ棤絎﹀彿鐨勩傚ソ鍚э紝浼拌鍚勪綅鐪嬪畼璇存垜澶彍錛屼絾紜疄鏄緭鍑虹殑緇撴灉鍜屾垜鎯崇殑涓嶅ぇ涓鏍鳳紝濡傛灉鍚勪綅娌℃槑鐧芥垜璇寸殑鏄粈涔堥棶棰橈紝鍙互璇曚竴涓嬨傜劧鍚庡洖鏉ョ湅涓嬮潰鐨勫唴瀹廣?br>











銆?br>

In an unsigned type, all the bits represent the value. If a type is defined for a particular machine to use 8 bits, then the unsigned version of this type could hold the values 0 through 255.

鏃犵鍙峰瀷涓紝鎵鏈夌殑浣嶉兘琛ㄧず鏁板箋傚鏋滃湪鏌愮鏈哄櫒涓紝瀹氫箟涓縐嶇被鍨嬩嬌鐢?8 浣嶈〃紺猴紝閭d箞榪欑綾誨瀷鐨? unsigned 鍨嬪彲浠ュ彇鍊?0 鍒?255銆?/p>

The C++ standard does not define how signed types are represented at the bit level. Instead, each compiler is free to decide how it will represent signed types. These representations can affect the range of values that a signed type can hold. We are guaranteed that an 8-bit signed type will hold at least the values from 127 through 127; many implementations allow values from 128 through 127.

C++ 鏍囧噯騫舵湭瀹氫箟 signed 綾誨瀷濡備綍鐢ㄤ綅鏉ヨ〃紺猴紝鑰屾槸鐢辨瘡涓紪璇戝櫒鑷敱鍐沖畾濡備綍琛ㄧず signed 綾誨瀷銆傝繖浜涜〃紺烘柟寮忎細褰卞搷 signed 綾誨瀷鐨勫彇鍊艱寖鍥淬? 浣?signed 綾誨瀷鐨勫彇鍊艱偗瀹氳嚦灝戞槸浠?-127 鍒?127錛屼絾涔熸湁璁稿瀹炵幇鍏佽鍙栧間粠 -128 鍒?127銆?/p>

Under the most common strategy for representing signed integral types, we can view one of the bits as a sign bit. Whenever the sign bit is 1, the value is negative; when it is 0, the value is either 0 or a positive number. An 8-bit integral signed type represented using a sign-bit can hold values from 128 through 127.

琛ㄧず signed 鏁村瀷綾誨瀷鏈甯歌鐨勭瓥鐣ユ槸鐢ㄥ叾涓竴涓綅浣滀負絎﹀彿浣嶃傜鍙蜂綅涓?1錛屽煎氨涓鴻礋鏁幫紱絎﹀彿浣嶄負 0錛屽煎氨涓?0 鎴栨鏁般備竴涓?signed 鏁村瀷鍙栧兼槸浠?-128 鍒?127銆?/p>

Assignment to Integral Types
鏁村瀷鐨勮祴鍊?/h5>

The type of an object determines the values that the object can hold. This fact raises the question of what happens when one tries to assign a value outside the allowable range to an object of a given type. The answer depends on whether the type is signed or unsigned.

瀵硅薄鐨勭被鍨嬪喅瀹氬璞$殑鍙栧箋傝繖浼氬紩璧蜂竴涓枒闂細褰撴垜浠瘯鐫鎶婁竴涓秴鍑哄叾鍙栧艱寖鍥寸殑鍊艱祴緇欎竴涓寚瀹氱被鍨嬬殑瀵硅薄鏃訛紝緇撴灉浼氭庢牱鍛紵絳旀鍙栧喅浜庤繖縐嶇被鍨嬫槸 signed 榪樻槸 unsigned 鐨勩?/p>

For unsigned types, the compiler must adjust the out-of-range value so that it will fit. The compiler does so by taking the remainder of the value modulo the number of distinct values the unsigned target type can hold. An object that is an 8-bit unsigned char, for example, can hold values from 0 through 255 inclusive. If we assign a value outside this range, the compiler actually assigns the remainder of the value modulo 256. For example, we might attempt to assign the value 336 to an 8-bit signed char. If we try to store 336 in our 8-bit unsigned char, the actual value assigned will be 80, because 80 is equal to 336 modulo 256.

瀵逛簬 unsigned 綾誨瀷鏉ヨ錛岀紪璇戝櫒蹇呴』璋冩暣瓚婄晫鍊間嬌鍏舵弧瓚寵姹傘傜紪璇戝櫒浼氬皢璇ュ煎 unsigned 綾誨瀷鐨勫彲鑳藉彇鍊兼暟鐩眰妯★紝鐒跺悗鍙栨墍寰楀箋傛瘮濡?8 浣嶇殑 unsigned char錛屽叾鍙栧艱寖鍥翠粠 0 鍒? 255錛堝寘鎷?255錛夈傚鏋滆祴緇欒秴鍑鴻繖涓寖鍥寸殑鍊鹼紝閭d箞緙栬瘧鍣ㄥ皢浼氬彇璇ュ煎 256 姹傛ā鍚庣殑鍊箋備緥濡傦紝濡傛灉璇曞浘灝?336 瀛樺偍鍒?8 浣嶇殑 unsigned char 涓紝鍒欏疄闄呰祴鍊間負 80錛屽洜涓?80 鏄?336 瀵?256 姹傛ā鍚庣殑鍊箋?/p>

For the unsigned types, a negative value is always out of range. An object of unsigned type may never hold a negative value. Some languages make it illegal to assign a negative value to an unsigned type, but C++ does not.

瀵逛簬 unsigned 綾誨瀷鏉ヨ錛岃礋鏁版繪槸瓚呭嚭鍏跺彇鍊艱寖鍥淬?tt>unsigned 綾誨瀷鐨勫璞″彲鑳芥案榪滀笉浼氫繚瀛樿礋鏁般傛湁浜涜璦涓皢璐熸暟璧嬬粰 unsigned 綾誨瀷鏄潪娉曠殑錛屼絾鍦?C++ 涓繖鏄悎娉曠殑銆?/p>


In C++ it is perfectly legal to assign a negative number to an object with unsigned type. The result is the negative value modulo the size of the type. So, if we assign 1 to an 8-bit unsigned char, the resulting value will be 255, which is 1 modulo 256.

C++ 涓紝鎶婅礋鍊艱祴緇?unsigned 瀵硅薄鏄畬鍏ㄥ悎娉曠殑錛屽叾緇撴灉鏄璐熸暟瀵硅綾誨瀷鐨勫彇鍊間釜鏁版眰妯″悗鐨勫箋傛墍浠ワ紝濡傛灉鎶?-1 璧嬬粰8浣嶇殑 unsigned char錛岄偅涔堢粨鏋滄槸 255錛屽洜涓?255 鏄?-1 瀵?256 姹傛ā鍚庣殑鍊箋?/p>



When assigning an out-of-range value to a signed type, it is up to the compiler to decide what value to assign. In practice, many compilers treat signed types similarly to how they are required to treat unsigned types. That is, they do the assignment as the remainder modulo the size of the type. However, we are not guaranteed that the compiler will do so for the signed types.

褰撳皢瓚呰繃鍙栧艱寖鍥寸殑鍊艱祴緇?signed 綾誨瀷鏃訛紝鐢辯紪璇戝櫒鍐沖畾瀹為檯璧嬬殑鍊箋傚湪瀹為檯鎿嶄綔涓紝寰堝鐨勭紪璇戝櫒澶勭悊 signed 綾誨瀷鐨勬柟寮忓拰 unsigned 綾誨瀷綾諱技銆備篃灝辨槸璇達紝璧嬪兼椂鏄彇璇ュ煎璇ョ被鍨嬪彇鍊兼暟鐩眰妯″悗鐨勫箋傜劧鑰屾垜浠笉鑳戒繚璇佺紪璇戝櫒閮戒細榪欐牱澶勭悊 signed 綾誨瀷銆?/p>



浠ヤ笂鎽樿嚜 c++ primer,鎯劎錛岃繕鏄啀緇嗙粏鐨勪粠澶村搧涓嬈¤繖涔﹀惂銆?br>











Brandon 2011-02-13 16:12 鍙戣〃璇勮
]]>c璇█涓彲鍙樺弬鏁板嚱鏁扮殑璁捐http://m.shnenglu.com/maosher/archive/2010/06/17/118126.htmlBrandonBrandonThu, 17 Jun 2010 15:52:00 GMThttp://m.shnenglu.com/maosher/archive/2010/06/17/118126.htmlhttp://m.shnenglu.com/maosher/comments/118126.htmlhttp://m.shnenglu.com/maosher/archive/2010/06/17/118126.html#Feedback0http://m.shnenglu.com/maosher/comments/commentRss/118126.htmlhttp://m.shnenglu.com/maosher/services/trackbacks/118126.html
鎴戜滑鐭ラ亾鍑芥暟璋冪敤鏃墮兘浼氬垎閰嶆爤絀洪棿錛岃屽嚱鏁拌皟鐢ㄦ満鍒朵腑鐨勬爤緇撴瀯濡備笅鍥炬墍紺猴細

                       |     ......     |

                       ------------------

                       |     鍙傛暟2      |

                       ------------------

                       |     鍙傛暟1      |

                       ------------------

                       |    榪斿洖鍦板潃    |

                       ------------------

                       |璋冪敤鍑芥暟榪愯鐘舵亅

                       ------------------

鍙錛屽弬鏁版槸榪炵畫瀛樺偍鍦ㄦ爤閲岄潰鐨勶紝閭d箞涔熷氨鏄錛屾垜浠彧瑕佸緱鍒板彲鍙樺弬鏁扮殑鍓嶄竴涓弬鏁扮殑鍦板潃錛屽氨鍙互閫氳繃鎸囬拡璁塊棶鍒伴偅浜涘彲鍙樺弬鏁般備絾鏄庝箞鏍峰緱鍒板彲鍙樺弬鏁扮殑鍓嶄竴涓弬鏁扮殑鍦板潃鍛紵涓嶇煡閬撲綘娉ㄦ剰鍒版病鏈夛紝鍙傛暟鍙彉鍑芥暟鍦ㄥ彲鍙樺弬鏁頒箣鍓嶅繀鏈変竴涓弬鏁版槸鍥哄畾鐨勶紝騫朵嬌鐢ㄦ爣璇嗙錛岃屼笖閫氬父琚0鏄庝負char*綾誨瀷錛宲rintf鍑芥暟涔熶笉渚嬪銆傝繖鏍風殑璇濓紝鎴戜滑灝卞彲浠ラ氳繃榪欎釜鍙傛暟瀵瑰簲鐨勬爣璇嗙鏉ュ緱鍒板湴鍧錛屼粠鑰岃闂叾浠栧弬鏁板彉寰楀彲鑳姐傛垜浠彲浠ュ啓涓涓祴璇曠▼搴忔潵璇曚竴涓嬶細

#include <stdio.h>



void va_test(char* fmt,...);//鍙傛暟鍙彉鐨勫嚱鏁板0鏄?br>


void main()

{

    int a=1,c=55;

       char b='b';

    va_test("",a,b,c);//鐢ㄥ洓涓弬鏁板仛嫻嬭瘯

}



void va_test(char* fmt,...) //鍙傛暟鍙彉鐨勫嚱鏁板畾涔夛紝娉ㄦ剰絎竴涓弬鏁頒負char* fmt

{

   char *p=NULL;



      p=(char *)&fmt;//娉ㄦ剰涓嶆槸鎸囧悜fmt錛岃屾槸鎸囧悜&fmt錛屽茍涓斿己鍒惰漿鍖栦負char *,浠ヤ究涓涓竴涓瓧鑺傝闂?br>
      for(int i = 0;i<16;i++)//16鏄氳繃璁$畻鐨勫鹼紙鍙傛暟涓暟*4涓瓧鑺傦級錛屽彧鏄負浜嗘祴璇曪紝鏆備笖灝嗗氨涓涓?br>
      {

                printf("%.4d ",*p);//杈撳嚭p鎸囬拡鎸囧悜鍦板潃鐨勫?br>
        p++;

      }

}



緙栬瘧榪愯鐨勭粨鏋滀負

0056 0000 0066 0000 | 0001 0000 0000 0000 | 0098 0000 0000 0000 | 0055 0000 0000 0000



鐢辮繍琛岀粨鏋滃彲瑙侊紝閫氳繃榪欐牱鏂瑰紡鍙互閫愪竴鑾峰緱鍙彉鍙傛暟鐨勫箋?br>
鑷充簬涓轟粈涔堥氬父琚0鏄庝負char*綾誨瀷錛屾垜浠參鎱㈢湅鏉ャ?br>
2錛屾庢牱紜畾鍙傛暟綾誨瀷鍜屾暟閲?br>
閫氳繃涓婅堪鐨勬柟寮忥紝鎴戜滑棣栧厛瑙e喅浜嗗彇寰楀彲鍙樺弬鏁板肩殑闂錛屼絾鏄浜庝竴涓弬鏁幫紝鍊煎緢閲嶈錛屽叾綾誨瀷鍚屾牱涓捐凍杞婚噸錛岃屽浜庝竴涓嚱鏁版潵璁插弬鏁頒釜鏁頒篃闈炲父閲嶈錛屽惁鍒欏氨浼氫駭鐢熶簡涓緋誨垪鐨勯夯鐑︽潵銆傞氳繃璁塊棶瀛樺偍鍙傛暟鐨勬爤絀洪棿錛屾垜浠茍涓嶈兘寰楀埌鍏充簬綾誨瀷鐨勪換浣曚俊鎭拰鍙傛暟涓暟鐨勪換浣曚俊鎭傛垜鎯充綘搴旇鎯沖埌浜嗏斺斾嬌鐢╟har *鍙傛暟銆侾rintf鍑芥暟灝辨槸榪欐牱瀹炵幇鐨勶紝瀹冩妸鍚庨潰鐨勫彲鍙樺弬鏁扮被鍨嬮兘鏀懼埌浜哻har *鎸囧悜鐨勫瓧絎︽暟緇勯噷錛屽茍閫氳繃%鏉ユ爣璇嗕互渚夸笌鍏跺畠鐨勫瓧絎︾浉鍖哄埆錛屼粠鑰岀‘瀹氫簡鍙傛暟綾誨瀷涔熺‘瀹氫簡鍙傛暟涓暟銆傚叾瀹烇紝鐢ㄤ綍縐嶆柟寮忔潵鍒拌揪榪欐牱鐨勬晥鏋滃彇鍐充簬鍑芥暟鐨勫疄鐜般傛瘮濡傝錛屽畾涔変竴涓嚱鏁幫紝棰勭煡瀹冪殑鍙彉鍙傛暟綾誨瀷閮芥槸int錛岄偅涔堝浐瀹氬弬鏁板畬鍏ㄥ彲浠ョ敤int綾誨瀷鏉ユ浛鎹har*綾誨瀷錛屽洜涓哄彧瑕佸緱鍒板弬鏁頒釜鏁板氨鍙互浜嗐?br>
3錛岃█褰掓浼?br>
   鎴戞兂鍒頒簡榪欓噷錛屽ぇ姒傜殑杞粨宸茬粡鍛堢幇鍑烘潵浜嗐傛湰鏉ユ兂灝辨浣滅艦鐨勶紙鎴戠殑鎯版т嬌鐒訛級錛屼絾鏄竴鎯沖埌濡傛灉涓嶅叿瀹炵敤鎬т究鍙兘鏄竴鍫嗗簾鐗╋紝鏋夎垂鎴戞墦浜嗚繖涔堜簺瀛楋紝鍐沖畾榪樻槸緇х畫涓嬪幓銆?br>
   鎴戞槸姣旇緝鎶靛埗鐢ㄩ偅浜涗笉鏄庢墍浠ョ殑瀹忓畾涔夌殑錛屾墍浠ュ湪涓婇潰鐨勯槓榪伴噷涓鐐歸兘娌℃湁娑夊強瀹氫箟鍦?lt;stdarg.h>鐨剉a(variable-argument)瀹忋備簨瀹炰笂錛屽綋鏃惰鎴戜駭鐢熸瀬澶х枒鎯戝拰濂藉鐨勬鏄繖鍑犱釜瀹忓畾涔夈備絾鏄幇鍦ㄦ垜浠笉寰椾笉瑕佸幓鍜岃繖浜涘畯瀹氫箟鎵撴墦浜ら亾錛屾瘯绔熸垜浠湪璁ㄧ敓璁$殑鏃跺欒繕寰楃敤涓婁粬浠紝榪欎篃鏄垜鏇頒箣涓?#8220;璦褰掓浼?#8221;鐨勭悊鐢便?br>
   濂戒簡錛屾垜浠潵鐪嬩竴涓嬮偅浜涘畯瀹氫箟銆?br>
   鎵撳紑<stdarg.h>鏂囦歡錛屾壘涓涓媣a_*鐨勫畯瀹氫箟錛屽彂鐜頒笉鍗曞崟鍙湁涓緇勶紝浣嗘槸鍦ㄥ悇緇勫畾涔夊墠閮戒細鏈夊畯緙栬瘧銆傚畯緙栬瘧鎸囩ず鐨勬槸涓嶅悓紜歡騫沖彴鍜岀紪璇戝櫒涓嬬敤鎬庢牱鐨剉a瀹忓畾涔夈傛瘮杈冧竴涓嬶紝涓嶅悓涔嬪涓昏鍦ㄥ亸縐婚噺鐨勮綆椾笂銆傛垜浠繕鏄嬁涓吀鍨嬪張鐔熸倝鐨勨斺擷86鐨勭浉鍏沖畯瀹氫箟錛?br>
1)typedef char * va_list;

2)#define _INTSIZEOF(n)   ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )



3)#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )

4)#define va_arg(ap,t)    ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )

5)#define va_end(ap)      ( ap = (va_list)0 )



鎴戜滑閫愪竴鐪嬫潵錛?br>
絎竴涓垜鎯充笉蹇呰浜嗭紝綾誨瀷瀹氫箟緗簡銆傜浜屼釜鏄鏈変簺鏉ュご鐨勶紝鎴戜滑涔熶笉寰椾笉鎼炴噦瀹冿紝鍥犱負鍚庨潰鐨勪袱涓叧閿殑瀹忓畾涔夐兘鐢ㄥ埌浜嗐備笉鐭ラ亾浣犲涓嶅緇嗗績錛屾湁娌℃湁鍙戠幇鍦ㄤ笂闈㈢殑嫻嬭瘯紼嬪簭涓紝絎簩涓彲鍙樺弬鏁版槑鏄庢槸char綾誨瀷錛屽彲鏄湪杈撳嚭緇撴灉涓崰浜?涓猙yte銆傞毦閬撴墍鏈夌殑鍙傛暟閮戒細鍗?涓猙yte鐨勭┖闂達紵閭e鏋滄槸double綾誨瀷鐨勫弬鏁幫紝涓斾笉鏄細涓㈠け鏁版嵁錛佸鏋滀綘涓嶅珜楹葷儲鐨勮瘽錛屽啀鍘誨仛涓祴璇曞惂錛屽湪涓婇潰鐨勬祴璇曠▼搴忎腑鐢ㄤ竴涓猟ouble綾誨瀷錛堥暱搴︿負8byte錛夊拰涓涓猯ong double綾誨瀷錛堥暱搴︿負10byte錛夊仛鍙彉鍙傛暟銆傚彂鐜頒粈涔堬紵double綾誨瀷鍗犱簡8byte,鑰宭ong double鍗犱簡12byte銆傚ソ鍍忛兘鏄?鐨勬暣鏁板嶅摝銆備笉寰椾笉寮曞嚭鍙︿竴涓蹇典簡“瀵歸綈錛坅lignment錛?#8221;,鎵璋撳榻愶紝瀵笽ntel80x86 鏈哄櫒鏉ヨ灝辨槸瑕佹眰姣忎釜鍙橀噺鐨勫湴鍧閮芥槸sizeof(int)鐨勫嶆暟銆傚師鏉ユ垜浠悶閿欎簡錛宑har綾誨瀷鐨勫弬鏁板彧鍗犱簡1byte錛屼絾鏄畠鍚庨潰鐨勫弬鏁板洜涓哄榻愮殑鍏崇郴鍙兘璺寵繃3byte瀛樺偍錛岃岄偅3byte涔熷氨嫻垂鎺変簡銆傞偅涓轟粈涔堣瀵歸綈錛熷洜涓哄湪瀵歸綈鏂瑰紡涓嬶紝CPU 鐨勮繍琛屾晥鐜囪蹇緱澶氾紙涓句釜渚嬪瓙鍚э紝瑕佽鏄庣殑鏄笅闈㈢殑渚嬪瓙鏄垜浠庣綉涓婃憳褰曚笅鏉ョ殑錛屼笉璁板緱鍑哄浜嗐?br>
紺轟緥錛氬涓嬪浘錛屽綋涓涓猯ong 鍨嬫暟錛堝鍥句腑long1錛夊湪鍐呭瓨涓殑浣嶇疆姝eソ涓庡唴瀛樼殑瀛楄竟鐣屽榻愭椂錛孋PU 瀛樺彇榪欎釜鏁板彧闇璁塊棶涓嬈″唴瀛橈紝鑰屽綋涓涓猯ong 鍨嬫暟錛堝鍥句腑鐨刲ong2錛夊湪鍐呭瓨涓殑浣嶇疆璺ㄨ秺浜嗗瓧杈圭晫鏃訛紝CPU 瀛樺彇榪欎釜鏁板氨闇瑕佸嬈¤闂唴瀛橈紝濡俰960cx 璁塊棶榪欐牱鐨勬暟闇璇誨唴瀛樹笁嬈★紙涓涓狟YTE銆佷竴涓猄HORT銆佷竴涓狟YTE錛岀敱CPU 鐨勫井浠g爜鎵ц錛屽杞歡閫忔槑錛夛紝鎵浠ュ榻愭柟寮忎笅CPU 鐨勮繍琛屾晥鐜囨槑鏄懼揩澶氫簡銆?br>
1       8       16      24      32  

------- ------- ------- ---------

| long1 | long1 | long1 | long1 |

------- ------- ------- ---------

|        |        |         | long2 |

------- ------- ------- ---------

| long2 | long2 | long2 |        |

------- ------- ------- ---------

| ....)銆傚ソ鍍忔壇寰楁湁鐐硅繙鏉ワ紝浣嗘槸鏈夊姪浜庡_INTSIZEOF(n)鐨勭悊瑙c備綅鎿嶄綔瀵逛簬鎴戞潵璇存槸鐜勭殑涓滀笢銆傚崟涓綅榪愮畻榪樺簲浠樺緱鏉ワ紝鑰岃繖鏍蜂竴涓〃杈懼紡鎽嗗湪闈㈠墠灝辨檿浜嗐傛庝箞鍔烇紵鑿滈笩鑷湁鑿滅殑鍔炴硶銆?寰呯畫)


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=14721

---------------------------------------------------------------------------------------------------------------------

C璇█涓殑鍙彉鍙傛暟鍑芥暟    CSDN Blog鎺ㄥ嚭鏂囩珷鎸囨暟姒傚康錛屾枃绔犳寚鏁版槸瀵笲log鏂囩珷緇煎悎璇勫垎鍚庢帹綆楀嚭鐨勶紝緇煎悎璇勫垎欏瑰垎鍒槸璇ユ枃绔犵殑鐐瑰嚮閲忥紝鍥炲嬈℃暟錛岃緗戞憳鏀跺綍鏁伴噺錛屾枃绔犻暱搴﹀拰鏂囩珷綾誨瀷錛涙弧鍒?00錛屾瘡鏈堟洿鏂頒竴嬈°?br>
絎竴綃?br>
C璇█緙栫▼涓湁鏃朵細閬囧埌涓浜涘弬鏁頒釜鏁板彲鍙樼殑鍑芥暟,渚嬪printf()鍑芥暟,鍏跺嚱鏁板師鍨嬩負錛?br>
int printf( const char* format, ...);

瀹冮櫎浜嗘湁涓涓弬鏁癴ormat鍥哄畾浠ュ,鍚庨潰璺熺殑鍙傛暟鐨勪釜鏁板拰綾誨瀷鏄彲鍙樼殑錛堢敤涓変釜鐐?#8220;…”鍋氬弬鏁板崰浣嶇錛?瀹為檯璋冪敤鏃跺彲浠ユ湁浠ヤ笅鐨勫艦寮忥細

printf("%d",i);
printf("%s",s);
printf("the number is %d ,string is:%s", i, s);  

涓涓畝鍗曠殑鍙彉鍙傛暟鐨凜鍑芥暟

     鍏堢湅渚嬪瓙紼嬪簭銆傝鍑芥暟鑷沖皯鏈変竴涓暣鏁板弬鏁?鍏跺悗鍗犱綅絎?#8230;錛岃〃紺哄悗闈㈠弬鏁扮殑涓暟涓嶅畾銆傚湪榪欎釜渚嬪瓙閲岋紝鎵鏈夌殑杈撳叆鍙傛暟蹇呴』閮芥槸鏁存暟錛屽嚱鏁扮殑鍔熻兘鍙槸鎵撳嵃鎵鏈夊弬鏁扮殑鍊箋傚嚱鏁頒唬鐮佸涓嬶細

//紺轟緥浠g爜1錛氬彲鍙樺弬鏁板嚱鏁扮殑浣跨敤
#include "stdio.h"
#include "stdarg.h"
void simple_va_fun(int start, ...)
{
    va_list arg_ptr;
    int nArgValue =start;
    int nArgCout="0"; //鍙彉鍙傛暟鐨勬暟鐩?br>    va_start(arg_ptr,start); //浠ュ浐瀹氬弬鏁扮殑鍦板潃涓鴻搗鐐圭‘瀹氬彉鍙傜殑鍐呭瓨璧峰鍦板潃銆?br>    do
    {
        ++nArgCout;
        printf("the %d th arg: %d",nArgCout,nArgValue); //杈撳嚭鍚勫弬鏁扮殑鍊?br>        nArgValue = va_arg(arg_ptr,int); //寰楀埌涓嬩竴涓彲鍙樺弬鏁扮殑鍊?br>    } while(nArgValue != -1);              
    return;
}
int main(int argc, char* argv[])
{
    simple_va_fun(100,-1);
    simple_va_fun(100,200,-1);
    return 0;
}

涓嬮潰瑙i噴涓涓嬭繖浜涗唬鐮併備粠榪欎釜鍑芥暟鐨勫疄鐜板彲浠ョ湅鍒?鎴戜滑浣跨敤鍙彉鍙傛暟搴旇鏈変互涓嬫楠わ細

鈶寸敱浜庡湪紼嬪簭涓皢鐢ㄥ埌浠ヤ笅榪欎簺瀹?
void va_start( va_list arg_ptr, prev_param );
type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
va鍦ㄨ繖閲屾槸variable-argument(鍙彉鍙傛暟)鐨勬剰鎬濄?br>榪欎簺瀹忓畾涔夊湪stdarg.h涓?鎵浠ョ敤鍒板彲鍙樺弬鏁扮殑紼嬪簭搴旇鍖呭惈榪欎釜澶存枃浠躲?br>
鈶靛嚱鏁伴噷棣栧厛瀹氫箟涓涓獀a_list鍨嬬殑鍙橀噺,榪欓噷鏄痑rg_ptr,榪欎釜鍙橀噺鏄瓨鍌ㄥ弬鏁板湴鍧鐨勬寚閽?鍥犱負寰楀埌鍙傛暟鐨勫湴鍧涔嬪悗錛屽啀緇撳悎鍙傛暟鐨勭被鍨嬶紝鎵嶈兘寰楀埌鍙傛暟鐨勫箋?br>
鈶剁劧鍚庣敤va_start瀹忓垵濮嬪寲鈶典腑瀹氫箟鐨勫彉閲廰rg_ptr,榪欎釜瀹忕殑絎簩涓弬鏁版槸鍙彉鍙傛暟鍒楄〃鐨勫墠涓涓弬鏁?鍗蟲渶鍚庝竴涓浐瀹氬弬鏁般?br>
鈶風劧鍚庝緷嬈$敤va_arg瀹忎嬌arg_ptr榪斿洖鍙彉鍙傛暟鐨勫湴鍧,寰楀埌榪欎釜鍦板潃涔嬪悗錛岀粨鍚堝弬鏁扮殑綾誨瀷錛屽氨鍙互寰楀埌鍙傛暟鐨勫箋?br>
鈶歌瀹氱粨鏉熸潯浠訛紝榪欓噷鐨勬潯浠跺氨鏄垽鏂弬鏁板兼槸鍚︿負-1銆傛敞鎰忚璋冪殑鍑芥暟鍦ㄨ皟鐢ㄦ椂鏄笉鐭ラ亾鍙彉鍙傛暟鐨勬紜暟鐩殑錛岀▼搴忓憳蹇呴』鑷繁鍦ㄤ唬鐮佷腑鎸囨槑緇撴潫鏉′歡銆傝嚦浜庝負浠涔堝畠涓嶄細鐭ラ亾鍙傛暟鐨勬暟鐩紝鍦ㄧ湅瀹岃繖鍑犱釜瀹忕殑鍐呴儴瀹炵幇鏈哄埗鍚庯紝鑷劧灝變細鏄庣櫧銆?br>
絎簩綃?br>
C璇█涔嬪彲鍙樺弬鏁伴棶棰?br>


C璇█涓湁涓縐嶉暱搴︿笉紜畾鐨勫弬鏁幫紝褰㈠錛?…"錛屽畠涓昏鐢ㄥ湪鍙傛暟涓暟涓嶇‘瀹氱殑鍑芥暟涓紝鎴戜滑鏈瀹規槗鎯沖埌鐨勪緥瀛愭槸printf鍑芥暟銆?br>
銆銆鍘熷瀷錛?br>
銆銆int printf( const char *format [, argument]... );

銆銆浣跨敤渚嬶細

銆銆printf("Enjoy yourself everyday!\n");

銆銆printf("The value is %d!\n", value);

銆銆榪欑鍙彉鍙傛暟鍙互璇存槸C璇█涓涓瘮杈冮毦鐞嗚В鐨勯儴鍒嗭紝榪欓噷浼氱敱鍑犱釜闂寮曞彂涓浜涘瀹冪殑鍒嗘瀽銆?br>
銆銆娉ㄦ剰錛氬湪C++涓湁鍑芥暟閲嶈澆錛坥verload錛夊彲浠ョ敤鏉ュ尯鍒笉鍚屽嚱鏁板弬鏁扮殑璋冪敤錛屼絾瀹冭繕鏄笉鑳借〃紺轟換鎰忔暟閲忕殑鍑芥暟鍙傛暟銆?br>
銆銆闂錛歱rintf鐨勫疄鐜?br>
銆銆璇烽棶錛屽浣曡嚜宸卞疄鐜皃rintf鍑芥暟錛屽浣曞鐞嗗叾涓殑鍙彉鍙傛暟闂錛?絳旀涓庡垎鏋愶細

銆銆鍦ㄦ爣鍑咰璇█涓畾涔変簡涓涓ご鏂囦歡涓撻棬鐢ㄦ潵瀵逛粯鍙彉鍙傛暟鍒楄〃錛屽畠鍖呭惈浜嗕竴緇勫畯錛屽拰涓涓獀a_list鐨則ypedef澹版槑銆備竴涓吀鍨嬪疄鐜板涓嬶細

銆銆typedef char* va_list;

銆銆#define va_start(list) list = (char*)&va_alist

銆銆#define va_end(list)

銆銆#define va_arg(list, mode)\

銆銆((mode*) (list += sizeof(mode)))[-1]

銆銆鑷繁瀹炵幇printf錛?br>
銆銆#include

銆銆int printf(char* format, …)

銆銆{

銆銆va_list ap;

銆銆va_start(ap, format);

銆銆int n = vprintf(format, ap);

銆銆va_end(ap);

銆銆return n;

銆銆}

銆銆闂錛氳繍琛屾椂鎵嶇‘瀹氱殑鍙傛暟

銆銆鏈夋病鏈夊姙娉曞啓涓涓嚱鏁幫紝榪欎釜鍑芥暟鍙傛暟鐨勫叿浣撳艦寮忓彲浠ュ湪榪愯鏃舵墠紜畾錛?br>
銆銆絳旀涓庡垎鏋愶細

銆銆鐩墠娌℃湁"姝h"鐨勮В鍐沖姙娉曪紝涓嶈繃鐙棬鍋忔柟鍊掓槸鏈変竴涓紝鍥犱負鏈変竴涓嚱鏁板凡緇忕粰鎴戜滑鍋氬嚭浜嗚繖鏂歸潰鐨勬鏍鳳紝閭e氨鏄痬ain()錛屽畠鐨勫師鍨嬫槸:

銆銆int main(int argc,char *argv[]);
鍑芥暟鐨勫弬鏁版槸argc鍜宎rgv銆?br>
銆銆娣卞叆鎯充竴涓嬶紝"鍙兘鍦ㄨ繍琛屾椂紜畾鍙傛暟褰㈠紡"錛屼篃灝辨槸璇翠綘娌″姙娉曚粠澹版槑涓湅鍒版墍鎺ュ彈鐨勫弬鏁幫紝涔熷嵆鏄弬鏁版牴鏈氨娌℃湁鍥哄畾鐨勫艦寮忋傚父鐢ㄧ殑鍔炴硶鏄綘鍙互閫氳繃瀹氫箟涓涓獀oid *綾誨瀷鐨勫弬鏁幫紝鐢ㄥ畠鏉ユ寚鍚戝疄闄呯殑鍙傛暟鍖猴紝鐒跺悗鍦ㄥ嚱鏁頒腑鏍規嵁鏍規嵁闇瑕佷換鎰忚В閲婂畠浠殑鍚箟銆傝繖灝辨槸main鍑芥暟涓璦rgv鐨勫惈涔夛紝鑰宎rgc錛屽垯鐢ㄦ潵琛ㄦ槑瀹為檯鐨勫弬鏁頒釜鏁幫紝榪欎負鎴戜滑浣跨敤鎻愪緵浜嗚繘涓姝ョ殑鏂逛究錛屽綋鐒訛紝榪欎釜鍙傛暟涓嶆槸蹇呴渶鐨勩?br>
銆銆铏界劧鍙傛暟娌℃湁鍥哄畾褰㈠紡錛屼絾鎴戜滑蹇呯劧瑕佸湪鍑芥暟涓В鏋愬弬鏁扮殑鎰忎箟錛屽洜姝わ紝鐞嗘墍褰撶劧浼氭湁涓涓姹傦紝灝辨槸璋冪敤鑰呭拰琚皟鑰呬箣闂磋瀵瑰弬鏁板尯鍐呭鐨勬牸寮忥紝澶у皬錛屾湁鏁堟х瓑鎵鏈夋柟闈㈣揪鎴愪竴鑷達紝鍚﹀垯鍗楄緯鍖楄緳鍚勮鍚勮瘽灝辨儴浜嗐?br>
銆銆闂錛氬彲鍙橀暱鍙傛暟鐨勪紶閫?br>
銆銆鏈夋椂鍊欙紝闇瑕佺紪鍐欎竴涓嚱鏁幫紝灝嗗畠鐨勫彲鍙橀暱鍙傛暟鐩存帴浼犻掔粰鍙﹀鐨勫嚱鏁幫紝璇烽棶錛岃繖涓姹傝兘鍚﹀疄鐜幫紵

銆銆絳旀涓庡垎鏋愶細

銆銆鐩墠錛屼綘灝氭棤鍔炴硶鐩存帴鍋氬埌榪欎竴鐐癸紝浣嗘槸鎴戜滑鍙互榪傚洖鍓嶈繘錛岄鍏堬紝鎴戜滑瀹氫箟琚皟鐢ㄥ嚱鏁扮殑鍙傛暟涓簐a_list綾誨瀷錛屽悓鏃跺湪璋冪敤鍑芥暟涓皢鍙彉闀垮弬鏁板垪琛ㄨ漿鎹負va_list錛岃繖鏍峰氨鍙互榪涜鍙橀暱鍙傛暟鐨勪紶閫掍簡銆傜湅濡備笅鎵紺猴細

銆銆void subfunc (char *fmt, va_list argp)

銆銆{

銆銆...

銆銆arg = va_arg (fmt, argp); /* 浠巃rgp涓愪竴鍙栧嚭鎵瑕佺殑鍙傛暟 */

銆銆...

銆銆}

銆銆void mainfunc (char *fmt, ...)

銆銆{

銆銆va_list argp;

銆銆va_start (argp, fmt); /* 灝嗗彲鍙橀暱鍙傛暟杞崲涓簐a_list */

銆銆subfunc (fmt, argp); /* 灝唙a_list浼犻掔粰瀛愬嚱鏁?*/

銆銆va_end (argp);

銆銆...

銆銆}

銆銆闂錛氬彲鍙橀暱鍙傛暟涓被鍨嬩負鍑芥暟鎸囬拡

銆銆鎴戞兂浣跨敤va_arg鏉ユ彁鍙栧嚭鍙彉闀垮弬鏁頒腑綾誨瀷涓哄嚱鏁版寚閽堢殑鍙傛暟錛岀粨鏋滃嵈鎬繪槸涓嶆紜紝涓轟粈涔堬紵

銆銆絳旀涓庡垎鏋愶細

銆銆榪欎釜涓巚a_arg鐨勫疄鐜版湁鍏熾備竴涓畝鍗曠殑銆佹紨紺虹増鐨剉a_arg瀹炵幇濡備笅錛?br>
銆銆#define va_arg(argp, type) \

銆銆(*(type *)(((argp) += sizeof(type)) - sizeof(type)))

銆銆鍏朵腑錛宎rgp鐨勭被鍨嬫槸char *銆?br>
銆銆濡傛灉浣犳兂鐢╲a_arg浠庡彲鍙樺弬鏁板垪琛ㄤ腑鎻愬彇鍑哄嚱鏁版寚閽堢被鍨嬬殑鍙傛暟錛屼緥濡?br>
銆銆int (*)()錛屽垯va_arg(argp, int (*)())琚墿灞曚負錛?br>
銆銆(*(int (*)() *)(((argp) += sizeof (int (*)())) -sizeof (int (*)())))

銆銆鏄劇劧錛岋紙int (*)() *錛夋槸鏃犳剰涔夌殑銆?br>
銆銆瑙e喅榪欎釜闂鐨勫姙娉曟槸灝嗗嚱鏁版寚閽堢敤typedef瀹氫箟鎴愪竴涓嫭绔嬬殑鏁版嵁綾誨瀷錛屼緥濡傦細

銆銆typedef int (*funcptr)()錛?br>
銆銆榪欐椂鍊欏啀璋冪敤va_arg(argp, funcptr)灝嗚鎵╁睍涓猴細

銆銆(* (funcptr *)(((argp) += sizeof (funcptr)) - sizeof (funcptr)))

銆銆榪欐牱灝卞彲浠ラ氳繃緙栬瘧媯鏌ヤ簡銆?br>
銆銆闂錛氬彲鍙橀暱鍙傛暟鐨勮幏鍙?br>
銆銆鏈夎繖鏍蜂竴涓叿鏈夊彲鍙橀暱鍙傛暟鐨勫嚱鏁幫紝鍏朵腑鏈変笅鍒椾唬鐮佺敤鏉ヨ幏鍙栫被鍨嬩負float鐨勫疄鍙傦細

銆銆va_arg (argp, float);

銆銆榪欐牱鍋氬彲浠ュ悧錛?br>
銆銆絳旀涓庡垎鏋愶細

銆銆涓嶅彲浠ャ傚湪鍙彉闀垮弬鏁頒腑錛屽簲鐢ㄧ殑鏄?鍔犲"鍘熷垯銆備篃灝辨槸float綾誨瀷琚墿灞曟垚double錛沜har, short琚墿灞曟垚int銆傚洜姝わ紝濡傛灉浣犺鍘誨彲鍙橀暱鍙傛暟鍒楄〃涓師鏉ヤ負float綾誨瀷鐨勫弬鏁幫紝闇瑕佺敤va_arg(argp, double)銆傚char鍜宻hort綾誨瀷鐨勫垯鐢╲a_arg(argp, int)銆?br>
銆銆闂錛氬畾涔夊彲鍙橀暱鍙傛暟鐨勪竴涓檺鍒?br>
銆銆涓轟粈涔堟垜鐨勭紪璇戝櫒涓嶅厑璁告垜瀹氫箟濡備笅鐨勫嚱鏁幫紝涔熷氨鏄彲鍙橀暱鍙傛暟錛屼絾鏄病鏈変換浣曠殑鍥哄畾鍙傛暟錛?br>
銆銆int f (...)

銆銆{

銆銆...

銆銆}

銆銆絳旀涓庡垎鏋愶細

銆銆涓嶅彲浠ャ傝繖鏄疉NSI C 鎵瑕佹眰鐨勶紝浣犺嚦灝戝緱瀹氫箟涓涓浐瀹氬弬鏁般?br>
銆銆榪欎釜鍙傛暟灝嗚浼犻掔粰va_start()錛岀劧鍚庣敤va_arg()鍜寁a_end()鏉ョ‘瀹氭墍鏈夊疄闄呰皟鐢ㄦ椂鍙彉闀垮弬鏁扮殑綾誨瀷鍜屽箋?--------------------------------------------------------------------------------------------------------------------
濡備綍鍒ゅ埆鍙彉鍙傛暟鍑芥暟鐨勫弬鏁扮被鍨嬶紵

鍑芥暟褰㈠紡濡備笅錛?br>void   fun(char*   str,...)
{
      ......
}

鑻ヤ紶鐨勫弬鏁頒釜鏁板ぇ浜?錛屽浣曞垽鍒2涓互鍚庝紶鍙傜殑鍙傛暟綾誨瀷錛燂紵錛?br>鏈濂芥湁婧愮爜璇存槑錛?


娌″姙娉曞垽鏂殑


濡傛ゼ涓婃墍璇?渚嬪printf( "%d%c%s ",   ....)鏄氳繃鏍煎紡涓蹭腑鐨?d,   %c,   %s鏉ョ‘瀹氬悗闈㈠弬鏁扮殑綾誨瀷,鍏跺疄浣犱篃鍙互鍙傝冭繖縐嶆柟娉曟潵鍒ゆ柇涓嶅畾鍙傛暟鐨勭被鍨?


鏃犳硶鍒ゆ柇銆傚彲鍙樺弬鏁板疄鐜頒富瑕侀氳繃涓変釜瀹忓疄鐜幫細va_start,   va_arg,   va_end銆?br>

鍏?鎵╁睍涓庢濊?br>
涓暟鍙彉鍙傛暟鍦ㄥ0鏄庢椂鍙渶"..."鍗沖彲錛涗絾鏄紝鎴戜滑鍦ㄦ帴鍙楄繖浜涘弬鏁版椂涓嶈兘"..."銆倂a鍑芥暟瀹炵幇鐨勫叧閿氨鏄浣曞緱鍒板弬鏁板垪琛ㄤ腑鍙夊弬鏁幫紝鍖呮嫭鍙傛暟鐨勫煎拰綾誨瀷銆備互涓婄殑鎵鏈夊疄鐜伴兘鏄熀浜庢潵鑷猻tdarg.h鐨剉a_xxx鐨勫畯瀹氫箟銆?<鎬濊?gt;鑳戒笉鑳戒笉鍊熷姪浜巚a_xxx錛岃嚜宸卞疄鐜癡A鍛紵錛屾垜鎯沖埌鐨勬柟娉曟槸姹囩紪銆傚湪C涓紝鎴戜滑褰撶劧灝辯敤C鐨勫祵鍏ユ眹緙栨潵瀹炵幇錛岃繖搴旇鏄彲浠ュ仛寰楀埌鐨勩傝嚦浜庤兘鍋氬埌浠涔堢▼搴︼紝紼沖畾鎬у拰鏁堢巼鎬庝箞鏍鳳紝涓昏瑕佺湅浣犲鍐呭瓨鍜屾寚閽堢殑鎺у埗浜嗐?br>
鍙傝冭祫鏂?br>
1.IEEE鍜孫penGroup鑱斿悎寮鍙戠殑Single Unix specification Ver3錛汢R>
2.Linux man鎵嬪唽錛?br>
3.x86姹囩紪錛岃繕鏈変竴浜涘畨鍏ㄧ紪鐮佹柟闈㈢殑璧勬枡銆?br>
---------------------------------------------------------------------------------------------------------------------
[杞笘]瀵笴/C++鍙彉鍙傛暟琛ㄧ殑娣卞眰鎺㈢儲

C/C++璇█鏈変竴涓笉鍚屼簬鍏跺畠璇█鐨勭壒鎬э紝鍗沖叾鏀寔鍙彉鍙傛暟錛屽吀鍨嬬殑鍑芥暟濡俻rintf銆乻canf絳夊彲浠ユ帴鍙楁暟閲忎笉瀹氱殑鍙傛暟銆傚錛?br>銆銆printf ( "I love you" );
銆銆printf ( "%d", a );
銆銆printf ( "%d,%d", a, b );
銆銆絎竴銆佷簩銆佷笁涓猵rintf鍒嗗埆鎺ュ彈1銆?銆?涓弬鏁幫紝璁╂垜浠湅鐪媝rintf鍑芥暟鐨勫師鍨嬶細
銆銆int printf ( const char *format, ... );
銆銆浠庡嚱鏁板師鍨嬪彲浠ョ湅鍑猴紝鍏墮櫎浜嗘帴鏀朵竴涓浐瀹氱殑鍙傛暟format浠ュ錛屽悗闈㈢殑鍙傛暟鐢?…"琛ㄧず銆傚湪C/C++璇█涓紝"…"琛ㄧず鍙互鎺ュ彈涓嶅畾鏁伴噺鐨勫弬鏁幫紝鐞嗚涓婃潵璁詫紝鍙互鏄?鎴?浠ヤ笂鐨刵涓弬鏁般?br>銆銆鏈枃灝嗗C/C++鍙彉鍙傛暟琛ㄧ殑浣跨敤鏂規硶鍙奀/C++鏀寔鍙彉鍙傛暟琛ㄧ殑娣卞眰鏈虹悊榪涜鎺㈢儲銆?br>
銆銆涓. 鍙彉鍙傛暟琛ㄧ殑鐢ㄦ硶
銆銆1銆佺浉鍏沖畯
銆銆鏍囧噯C/C++鍖呭惈澶存枃浠秙tdarg.h錛岃澶存枃浠朵腑瀹氫箟浜嗗涓嬩笁涓畯錛?br>void va_start ( va_list arg_ptr, prev_param ); /* ANSI version */
type va_arg ( va_list arg_ptr, type );
void va_end ( va_list arg_ptr );
銆銆鍦ㄨ繖浜涘畯涓紝va灝辨槸variable argument(鍙彉鍙傛暟)鐨勬剰鎬濓紱arg_ptr鏄寚鍚戝彲鍙樺弬鏁拌〃鐨勬寚閽堬紱prev_param鍒欐寚鍙彉鍙傛暟琛ㄧ殑鍓嶄竴涓浐瀹氬弬鏁幫紱type涓哄彲鍙樺弬鏁扮殑綾誨瀷銆倂a_list涔熸槸涓涓畯錛屽叾瀹氫箟涓簍ypedef char * va_list錛屽疄璐ㄤ笂鏄竴 char鍨嬫寚閽堛俢har鍨嬫寚閽堢殑鐗圭偣鏄?+銆?-鎿嶄綔瀵瑰叾浣滅敤鐨勭粨鏋滄槸澧?鍜屽噺1錛堝洜涓簊izeof(char)涓?錛夛紝涓庝箣涓嶅悓鐨勬槸int絳夊叾瀹冪被鍨嬫寚閽堢殑++銆?-鎿嶄綔瀵瑰叾浣滅敤鐨勭粨鏋滄槸澧瀞izeof(type)鎴栧噺sizeof(type)錛岃屼笖sizeof (type)澶т簬1銆?br>銆銆閫氳繃va_start瀹忔垜浠彲浠ュ彇寰楀彲鍙樺弬鏁拌〃鐨勯鎸囬拡錛岃繖涓畯鐨勫畾涔変負錛?br>#define va_start ( ap, v ) ( ap = (va_list)&v + _INTSIZEOF(v) )
銆銆鏄捐屾槗瑙侊紝鍏跺惈涔変負灝嗘渶鍚庨偅涓浐瀹氬弬鏁扮殑鍦板潃鍔犱笂鍙彉鍙傛暟瀵瑰叾鐨勫亸縐誨悗璧嬪肩粰ap錛岃繖鏍穉p灝辨槸鍙彉鍙傛暟琛ㄧ殑棣栧湴鍧銆傚叾涓殑_INTSIZEOF瀹忓畾涔変負錛?br>#define _INTSIZEOF(n) ((sizeof ( n ) + sizeof ( int ) - 1 ) & ~( sizeof( int ) - 1 ) )
銆銆va_arg瀹忕殑鎰忔濆垯鎸囧彇鍑哄綋鍓峚rg_ptr鎵鎸囩殑鍙彉鍙傛暟騫跺皢ap鎸囬拡鎸囧悜涓嬩竴鍙彉鍙傛暟錛屽叾鍘熷瀷涓猴細
#define va_arg(list, mode) ((mode *)(list =(char *) ((((int)list + (__builtin_alignof(mode)<=4?3:7)) &(__builtin_alignof(mode)<=4?-4:-8))+sizeof(mode))))[-1]
銆銆瀵硅繖涓畯鐨勫叿浣撳惈涔夋垜浠皢鍦ㄥ悗闈㈡繁鍏ヨ璁恒?br>銆銆鑰寁a_end瀹忚鐢ㄦ潵緇撴潫鍙彉鍙傛暟鐨勮幏鍙栵紝鍏跺畾涔変負錛?br>#define va_end ( list )
銆銆鍙互鐪嬪嚭錛寁a_end ( list )瀹為檯涓婅瀹氫箟涓虹┖錛屾病鏈変換浣曠湡瀹炲搴旂殑浠g爜錛岀敤浜庝唬鐮佸縐幫紝涓巚a_start瀵瑰簲錛涘彟澶栵紝瀹冭繕鍙兘鍙戞尌浠g爜鐨?鑷敞閲?浣滅敤銆傛墍璋撲唬鐮佺殑"鑷敞閲?錛屾寚鐨勬槸浠g爜鑳借嚜宸辨敞閲婅嚜宸便?br>銆銆涓嬮潰鎴戜滑浠ュ叿浣撶殑渚嬪瓙鏉ヨ鏄庝互涓婁笁涓畯鐨勪嬌鐢ㄦ柟娉曘?br>銆銆2銆佷竴涓畝鍗曠殑渚嬪瓙
銆銆#include <stdarg.h>
銆銆/*銆鍑芥暟鍚嶏細max
銆銆*銆鍔熻兘錛氳繑鍥瀗涓暣鏁頒腑鐨勬渶澶у?br>銆銆* 鍙傛暟錛歯um錛氭暣鏁扮殑涓暟 ...錛歯um涓緭鍏ョ殑鏁存暟
銆銆* 榪斿洖鍊鹼細姹傚緱鐨勬渶澶ф暣鏁?br>銆銆*/
銆銆int max ( int num, ... )
銆銆{
銆銆銆int m = -0x7FFFFFFF; /* 32緋葷粺涓渶灝忕殑鏁存暟 */
銆銆銆va_list ap;
銆銆銆va_start ( ap, num );
銆銆銆for ( int i= 0; i< num; i++ )
銆銆銆{
銆銆銆銆int t = va_arg (ap, int);
銆銆銆銆if ( t > m )
銆銆銆銆{
銆銆銆銆銆m = t;
銆銆銆銆}
銆銆銆}
銆銆銆va_end (ap);
銆銆銆return m;
銆銆}
銆銆/* 涓誨嚱鏁拌皟鐢╩ax */
銆銆int main ( int argc, char* argv[] )
銆銆{
銆銆銆int n = max ( 5, 5, 6 ,3 ,8 ,5); /* 姹?涓暣鏁頒腑鐨勬渶澶у?*/
銆銆銆cout << n;
銆銆銆return 0;
銆銆}
銆銆鍑芥暟max涓鍏堝畾涔変簡鍙彉鍙傛暟琛ㄦ寚閽坅p錛岃屽悗閫氳繃va_start ( ap, num )鍙栧緱浜嗗弬鏁拌〃棣栧湴鍧錛堣祴緇欎簡ap錛夛紝鍏跺悗鐨刦or寰幆鍒欑敤鏉ラ亶鍘嗗彲鍙樺弬鏁拌〃銆傝繖縐嶉亶鍘嗘柟寮忎笌鎴戜滑鍦ㄦ暟鎹粨鏋勬暀鏉愪腑緇忓父鐪嬪埌鐨勯亶鍘嗘柟寮忔槸綾諱技鐨勩?br>銆銆鍑芥暟max鐪嬭搗鏉ョ畝媧佹槑浜嗭紝浣嗘槸瀹為檯涓妏rintf鐨勫疄鐜板嵈榪滄瘮榪欏鏉傘俶ax鍑芥暟涔嬫墍浠ョ湅璧鋒潵綆鍗曪紝鏄洜涓猴細
銆銆(1) max鍑芥暟鍙彉鍙傛暟琛ㄧ殑闀垮害鏄凡鐭ョ殑錛岄氳繃num鍙傛暟浼犲叆錛?br>銆銆(2) max鍑芥暟鍙彉鍙傛暟琛ㄤ腑鍙傛暟鐨勭被鍨嬫槸宸茬煡鐨勶紝閮戒負int鍨嬨?br>銆銆鑰宲rintf鍑芥暟鍒欐病鏈夎繖涔堝垢榪愩傞鍏堬紝printf鍑芥暟鍙彉鍙傛暟鐨勪釜鏁頒笉鑳借交鏄撶殑寰楀埌錛岃屽彲鍙樺弬鏁扮殑綾誨瀷涔熶笉鏄浐瀹氱殑錛岄渶鐢辨牸寮忓瓧絎︿覆榪涜璇嗗埆錛堢敱%f銆?d銆?s絳夌‘瀹氾級錛屽洜姝ゅ垯娑夊強鍒板彲鍙樺弬鏁拌〃鐨勬洿澶嶆潅搴旂敤銆?br>銆銆涓嬮潰鎴戜滑浠ュ疄渚嬫潵鍒嗘瀽鍙彉鍙傛暟琛ㄧ殑楂樼駭搴旂敤銆?br>
銆銆浜? 楂樼駭搴旂敤
銆銆涓嬮潰榪欎釜紼嬪簭鏄垜浠負鏌愬祵鍏ュ紡緋葷粺錛堣緋葷粺涓瑿PU鐨勫瓧闀夸負16浣嶏級緙栧啓鐨勫湪灞忓箷涓婃樉紺烘牸寮忓瓧絎︿覆鐨勫嚱鏁癉rawText錛屽畠鐨勭敤娉曠被浼間簬 int printf ( const char *format, ... )鍑芥暟錛屼絾鍏惰緭鍑虹殑鐩爣涓哄祵鍏ュ紡緋葷粺鐨勬恫鏅舵樉紺哄睆騫曪紙LED錛夈?br>銆銆///////////////////////////////////////////////////////////////////////////////
銆銆// 鍑芥暟鍚嶇О: DrawText
銆銆// 鍔熻兘璇存槑: 鍦ㄦ樉紺哄睆涓婄粯鍒舵枃瀛?br>銆銆// 鍙傛暟璇存槑: xPos ---妯潗鏍囩殑浣嶇疆 [0 .. 30]
銆銆// yPos ---綰靛潗鏍囩殑浣嶇疆 [0 .. 64]
銆銆// ... 鍙互鍚屾暟瀛椾竴璧鋒樉紺猴紝闇璁劇疆鏍囧織(%d銆?l銆?x銆?s)
銆銆///////////////////////////////////////////////////////////////////////////////
銆銆extern void DrawText ( BYTE xPos, BYTE yPos, LPBYTE lpStr, ... )
銆銆{
銆銆銆BYTE lpData[100]; //緙撳啿鍖?br>銆銆銆BYTE byIndex;
銆銆銆BYTE byLen;
銆銆銆DWORD dwTemp;
銆銆銆WORD wTemp;
銆銆銆int i;
銆銆銆va_list lpParam;
銆銆銆memset( lpData, 0, 100);
銆銆銆byLen = strlen( lpStr );
銆銆銆byIndex = 0;
銆銆銆va_start ( lpParam, lpStr );
銆銆銆for ( i = 0; i < byLen; i++ )
銆銆銆{
銆銆銆銆if( lpStr[i] != ’%’ ) //涓嶆槸鏍煎紡絎﹀紑濮?br>銆銆銆銆{
銆銆銆銆銆lpData[byIndex++] = lpStr[i];
銆銆銆銆}
銆銆銆銆else
銆銆銆銆{
銆銆銆銆銆switch (lpStr[i+1])
銆銆銆銆銆{
銆銆銆銆銆銆//鏁村瀷
銆銆銆銆銆銆case ’d’:
銆銆銆銆銆銆case ’D’:
銆銆銆銆銆銆銆wTemp = va_arg ( lpParam, int );
銆銆銆銆銆銆銆byIndex += IntToStr( lpData+byIndex, (DWORD)wTemp );
銆銆銆銆銆銆銆i++;
銆銆銆銆銆銆銆break;
銆銆銆銆銆銆//闀挎暣鍨?br>銆銆銆銆銆銆case ’l’:
銆銆銆銆銆銆case ’L’:
銆銆銆銆銆銆銆dwTemp = va_arg ( lpParam, long );
銆銆銆銆銆銆銆byIndex += IntToStr ( lpData+byIndex, (DWORD)dwTemp );
銆銆銆銆銆銆銆i++;
銆銆銆銆銆銆銆break;
銆銆銆銆銆銆//16榪涘埗錛堥暱鏁村瀷錛?br>銆銆銆銆銆銆case ’x’:
銆銆銆銆銆銆case ’X’:
銆銆銆銆銆銆銆dwTemp = va_arg ( lpParam, long );
銆銆銆銆銆銆銆byIndex += HexToStr ( lpData+byIndex, (DWORD)dwTemp );
銆銆銆銆銆銆銆i++;
銆銆銆銆銆銆銆break;
銆銆銆銆銆銆default:
銆銆銆銆銆銆銆lpData[byIndex++] = lpStr[i];
銆銆銆銆銆銆銆break;
銆銆銆銆銆}
銆銆銆銆}
銆銆銆}
銆銆銆va_end ( lpParam );
銆銆銆lpData[byIndex] = ’#CONTENT#’;
銆銆銆DisplayString ( xPos, yPos, lpData, TRUE);銆//鍦ㄥ睆騫曚笂鏄劇ず瀛楃涓瞝pData
銆銆}
銆銆鍦ㄨ繖涓嚱鏁頒腑錛岄渶閫氳繃瀵逛紶鍏ョ殑鏍煎紡瀛楃涓詫紙棣栧湴鍧涓簂pStr錛夎繘琛岃瘑鍒潵鑾風煡鍙彉鍙傛暟涓暟鍙婂悇涓彲鍙樺弬鏁扮殑綾誨瀷錛屽叿浣撳疄鐜頒綋鐜板湪for寰幆涓傝濡傦紝鍦ㄨ瘑鍒負%d鍚庯紝鍋氱殑鏄痸a_arg ( lpParam, int )錛岃岃幏鐭ヤ負%l鍜?x鍚庡垯榪涜鐨勬槸va_arg ( lpParam, long )銆傛牸寮忓瓧絎︿覆璇嗗埆瀹屾垚鍚庯紝鍙彉鍙傛暟涔熷氨澶勭悊瀹屼簡銆?br>銆銆鍦ㄩ」鐩殑鏈鍒濓紝鎴戜滑涓鐩磋嫤浜庝笉鑳芥壘鍒頒竴涓ソ鐨勫姙娉曟潵娣峰悎杈撳嚭瀛楃涓插拰鏁板瓧錛屾垜浠噰鐢ㄤ簡鍒嗗埆鏄劇ず鏁板瓧鍜屽瓧絎︿覆鐨勬柟娉曪紝騫跺垎鍒寚瀹氬潗鏍囷紝紼嬪簭鏉$悊琚牬鍧忋傝屼笖錛屽湪娣峰悎鏄劇ず鐨勬椂鍊欙紝瑕佺粰鍚勭被鏁版嵁鍒嗗埆浜哄伐璁$畻鍧愭爣錛屾垜浠劅瑙夊ご鐤間笉宸層備互鍓嶇殑鍑芥暟涓猴細
銆銆//鏄劇ず瀛楃涓?br>銆銆showString ( BYTE xPos, BYTE yPos, LPBYTE lpStr )
銆銆//鏄劇ず鏁板瓧
銆銆showNum ( BYTE xPos, BYTE yPos, int num )
銆銆//浠?6榪涘埗鏂瑰紡鏄劇ず鏁板瓧
銆銆showHexNum ( BYTE xPos, BYTE yPos, int num )
銆銆鏈緇堬紝鎴戜滑鐢―rawText ( BYTE xPos, BYTE yPos, LPBYTE lpStr, ... )鍑芥暟浠f浛浜嗗師鍏堟墍鏈夌殑杈撳嚭鍑芥暟錛岀▼搴忓緱鍒頒簡綆鍖栥傚氨榪欐牱錛屽厔寮熶滑鐢ㄥ緱鐖界炕浜嗐?br>
銆銆涓? 榪愯鏈哄埗鎺㈢儲
銆銆閫氳繃絎?鑺傛垜浠浼氫簡鍙彉鍙傛暟琛ㄧ殑浣跨敤鏂規硶錛岀浉淇″枩嬈㈡姏鏍歸棶搴曠殑璇昏呰繕涓嶇敇蹇冿紝蹇呯劧鎯崇煡閬撳涓嬮棶棰橈細
銆銆錛?錛変負浠涔堟寜鐓х2鑺傜殑鍋氭硶灝卞彲浠ヨ幏寰楀彲鍙樺弬鏁板茍瀵瑰叾榪涜鎿嶄綔錛?br>銆銆錛?錛塁/C++鍦ㄥ簳灞傜┒绔熸槸渚濋潬浠涔堟潵瀵硅繖涓璇硶榪涜鏀寔鐨勶紝涓轟粈涔堝叾瀹冭璦灝變笉鑳芥彁渚涘彲鍙樺弬鏁拌〃鍛紵
銆銆鎴戜滑甯︾潃榪欎簺鐤戦棶鏉ヤ竴姝ユ榪涜鎽哥儲銆?br>銆銆3.1 璋冪敤鏈哄埗鍙嶆眹緙?br>銆銆鍙嶆眹緙栨槸鐮旂┒璇硶娣卞眰鐗規х殑緇堟瀬鑹瓥錛屽厛鏉ョ湅鐪?.2鑺備緥瀛愪腑涓誨嚱鏁拌繘琛宮ax ( 5, 5, 6 ,3 ,8 ,5)璋冪敤鏃剁殑鍙嶆眹緙栵細
銆銆1. 004010C8 push 5
銆銆2. 004010CA push 8
銆銆3. 004010CC push 3
銆銆4. 004010CE push 6
銆銆5. 004010D0 push 5
銆銆6. 004010D2 push 5
銆銆7. 004010D4 call @ILT+5(max) (0040100a)
銆銆浠庝笂榪板弽姹囩紪浠g爜涓垜浠彲浠ョ湅鍑猴紝C/C++鍑芥暟璋冪敤鐨勮繃紼嬩腑錛?br>銆銆絎竴姝ワ細灝嗗弬鏁頒粠鍙沖悜宸﹀叆鏍堬紙絎?锝?琛岋級錛?br>銆銆絎簩姝ワ細璋冪敤call鎸囦護榪涜璺寵漿錛堢7琛岋級銆?br>銆銆榪欎袱姝ュ寘鍚簡娣卞埢鐨勫惈涔夛紝瀹冭鏄嶤/C++榛樿鐨勮皟鐢ㄦ柟寮忎負鐢辮皟鐢ㄨ呯鐞嗗弬鏁板叆鏍堢殑鎿嶄綔錛屼笖鍏ユ爤鐨勯『搴忎負浠庡彸鑷沖乏錛岃繖縐嶈皟鐢ㄦ柟寮忕О涓篲cdecl璋冪敤銆倄86緋葷粺鐨勫叆鏍堟柟鍚戜負浠庨珮鍦板潃鍒頒綆鍦板潃錛屾晠絎?鑷硁涓弬鏁拌鏀懼湪浜嗗湴鍧閫掑鐨勫爢鏍堝唴銆傚湪琚皟鐢ㄥ嚱鏁板唴閮紝璇誨彇榪欎簺鍫嗘爤鐨勫唴瀹瑰氨鍙幏寰楀悇涓弬鏁扮殑鍊鹼紝璁╂垜浠弽姹囩紪鍒癿ax鍑芥暟鐨勫唴閮細
銆銆int max ( int num, ...)
銆銆{
銆銆1. 00401020 push ebp
銆銆2. 00401021 mov ebp,esp
銆銆3. 00401023 sub esp,50h
銆銆4. 00401026 push ebx
銆銆5. 00401027 push esi
銆銆6. 00401028 push edi
銆銆7. 00401029 lea edi,[ebp-50h]
銆銆8. 0040102C mov ecx,14h
銆銆9. 00401031 mov eax,0CCCCCCCCh
銆銆10. 00401036 rep stos dword ptr [edi]
銆銆va_list ap;
銆銆int m = -0x7FFFFFFF; /* 32緋葷粺涓渶灝忕殑鏁存暟 */
銆銆11. 00401038 mov dword ptr [ebp-8],80000001h
銆銆va_start ( ap, num );
銆銆12. 0040103F lea eax,[ebp+0Ch]
銆銆13. 00401042 mov dword ptr [ebp-4],eax
銆銆for ( int i= 0; i< num; i++ )
銆銆14. 00401045 mov dword ptr [ebp-0Ch],0
銆銆15. 0040104C jmp max+37h (00401057)
銆銆16. 0040104E mov ecx,dword ptr [ebp-0Ch]
銆銆17. 00401051 add ecx,1
銆銆18. 00401054 mov dword ptr [ebp-0Ch],ecx
銆銆19. 00401057 mov edx,dword ptr [ebp-0Ch]
銆銆20. 0040105A cmp edx,dword ptr [ebp+8]
銆銆21. 0040105D jge max+61h (00401081)
銆銆{
銆銆銆int t= va_arg (ap, int);
銆銆銆22. 0040105F mov eax,dword ptr [ebp-4]
銆銆銆23. 00401062 add eax,4
銆銆銆24. 00401065 mov dword ptr [ebp-4],eax
銆銆銆25. 00401068 mov ecx,dword ptr [ebp-4]
銆銆銆26. 0040106B mov edx,dword ptr [ecx-4]
銆銆銆27. 0040106E mov dword ptr [t],edx
銆銆銆if ( t > m )
銆銆銆銆28. 00401071 mov eax,dword ptr [t]
銆銆銆銆29. 00401074 cmp eax,dword ptr [ebp-8]
銆銆銆銆30. 00401077 jle max+5Fh (0040107f)
銆銆銆銆m = t;
銆銆銆銆31. 00401079 mov ecx,dword ptr [t]
銆銆銆銆32. 0040107C mov dword ptr [ebp-8],ecx
銆銆銆}
銆銆銆33. 0040107F jmp max+2Eh (0040104e)
銆銆銆va_end (ap);
銆銆銆34. 00401081 mov dword ptr [ebp-4],0
銆銆銆return m;
銆銆銆35. 00401088 mov eax,dword ptr [ebp-8]
銆銆}
銆銆36. 0040108B pop edi
銆銆37. 0040108C pop esi
銆銆38. 0040108D pop ebx
銆銆39. 0040108E mov esp,ebp
銆銆40. 00401090 pop ebp
銆銆41. 00401091 ret
銆銆鍒嗘瀽涓婅堪鍙嶆眹緙栦唬鐮侊紝瀵逛簬涓涓湡姝g殑紼嬪簭鍛樿岃█錛屽皢鏄竴縐嶅緢澶х殑浜彈錛涜屽浜庡垵瀛﹁咃紝涔熷皢浣垮叾鍙楃泭鑹銆傛墍浠ヨ涓瀹氳璧栫潃澶寸毊璁ょ湡鐮旂┒錛屽崈涓囦笉瑕佽鍚撳掞紒
銆銆琛?锝?0榪涜鎵ц鍑芥暟鍐呬唬鐮佺殑鍑嗗宸ヤ綔錛屼繚瀛樼幇鍦恒傜2琛屽鍫嗘爤榪涜縐誨姩錛涚3琛屽垯鎰忓懗鐫max鍑芥暟涓哄叾鍐呴儴灞閮ㄥ彉閲忓噯澶囩殑鍫嗘爤絀洪棿涓?0h瀛楄妭錛涚11琛岃〃紺烘妸鍙橀噺n鐨勫唴瀛樼┖闂村畨鎺掑湪浜嗗嚱鏁板唴閮ㄥ眬閮ㄦ爤搴曞噺8鐨勪綅緗紙鍗犵敤4涓瓧鑺傦級銆?br>銆銆絎?2锝?3琛岄潪甯稿叧閿紝瀵瑰簲鐫va_start ( ap, num )錛岃繖涓よ灝嗙涓涓彲鍙樺弬鏁扮殑鍦板潃璧嬪肩粰浜嗘寚閽坅p銆傚彟澶栵紝浠庣12琛屽彲浠ョ湅鍑簄um鐨勫湴鍧涓篹bp+0Ch錛涗粠絎?3琛屽彲浠ョ湅鍑篴p琚垎閰嶅湪鍑芥暟鍐呴儴灞閮ㄦ爤搴曞噺4鐨勪綅緗笂錛堝崰鐢?涓瓧鑺傦級銆?br>銆銆絎?2锝?7琛屾渶涓哄叧閿紝瀵瑰簲鐫va_arg (ap, int)銆傚叾涓紝22~24琛岀殑浣滅敤涓哄皢ap鎸囧悜涓嬩竴鍙彉鍙傛暟錛堝彲鍙樺弬鏁扮殑鍦板潃闂撮殧涓?涓瓧鑺傦紝浠巃dd eax,4鍙互鐪嬪嚭錛夛紱25~27琛屽垯鍙栧綋鍓嶅彲鍙樺弬鏁扮殑鍊艱祴緇欏彉閲弔銆傝繖孌靛弽姹囩紪寰堝鎬紝瀹冨厛縐誨姩鍙彉鍙傛暟鎸囬拡錛屽啀鍦ㄨ祴鍊兼寚浠ら噷闈㈠洖榪囧ご鏉ュ彇鍏堝墠鐨勫弬鏁板艱祴緇檛錛堜粠mov edx,dword ptr [ecx-4]璇彞鍙互鐪嬪嚭錛夈俈isual C++鍚屽鐜╁緱鏈夋剰鎬濓紝涓嶇煡閬撶瑙佸悓鏍風殑鎯呭喌Visual Basic絳夊叾瀹冨悓瀛︽庝箞鐜╋紵
銆銆絎?6锝?1琛屾仮澶嶇幇鍦哄拰鍫嗘爤鍦板潃錛屾墽琛屽嚱鏁拌繑鍥炴搷浣溿?br>銆銆鐥涜嫤鐨勫弽姹囩紪涔嬫梾宸笉澶氱粨鏉熶簡錛岀湅浜嗚繖孌靛弽姹囩紪鎴戜滑鎬葷畻寮勬槑鐧戒簡鍙彉鍙傛暟鐨勫瓨鏀句綅緗互鍙婂畠浠璇誨彇鐨勬柟寮忥紝欏胯鍏ㄧ渷杞繪澗錛?br>銆銆2銆佺壒孌婄殑璋冪敤綰﹀畾
銆銆闄ゆ涔嬪錛屾垜浠渶瑕佷簡瑙/C++鍑芥暟璋冪敤瀵瑰弬鏁板崰鐢ㄧ┖闂寸殑涓浜涚壒孌婄害瀹氾紝鍥犱負鍦╛cdecl璋冪敤鍗忚涓紝鏈変簺鍙橀噺綾誨瀷鏄寜鐓у叾瀹冨彉閲忕殑灝哄鍏ユ爤鐨勩?br>銆銆渚嬪錛屽瓧絎﹀瀷鍙橀噺灝嗚鑷姩鎵╁睍涓轟竴涓瓧鐨勭┖闂達紝鍥犱負鍏ユ爤鎿嶄綔閽堝鐨勬槸涓涓瓧銆?br>銆銆鍙傛暟n瀹為檯鍗犵敤鐨勭┖闂翠負( ( sizeof(n) + sizeof(int) - 1 ) & ~( sizeof(int) - 1 ) )錛岃繖灝辨槸絎?.1鑺俖INTSIZEOF(v)瀹忕殑鏉ュ巻錛?br>銆銆鏃㈢劧濡傛錛屽墠闈㈢粰鍑虹殑va_arg ( list, mode )瀹忎負浠涔堢帺榪欎箞澶х殑椋炴満灝卞緢娓呮浜嗐傝繖涓棶棰樺氨鐣欎釜璇昏呮偍鏉ュ垎鏋?



http://wp1314.ycool.com/post.3001515.html


Brandon 2010-06-17 23:52 鍙戣〃璇勮
]]>
c++涓璼tring鐨勪竴浜涜漿鎹?/title><link>http://m.shnenglu.com/maosher/archive/2009/05/31/86250.html</link><dc:creator>Brandon</dc:creator><author>Brandon</author><pubDate>Sun, 31 May 2009 04:38:00 GMT</pubDate><guid>http://m.shnenglu.com/maosher/archive/2009/05/31/86250.html</guid><wfw:comment>http://m.shnenglu.com/maosher/comments/86250.html</wfw:comment><comments>http://m.shnenglu.com/maosher/archive/2009/05/31/86250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/maosher/comments/commentRss/86250.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/maosher/services/trackbacks/86250.html</trackback:ping><description><![CDATA[<span style="font-family: 錕斤拷錕斤拷錕斤拷; font-size: 12px; ">榪欐槸鎴戜笂嬈′粠榪欓噷鐪嬪埌鐨勬妸瀹冪粰淇濆瓨浜嗕笅鏉ワ紝甯屾湜瀵逛綘鏈夌敤銆?#160;<br>1. c++涓璼tring鍒癷nt鐨勮漿鎹?#160;<br>1) 鍦–鏍囧噯搴撻噷闈紝浣跨敤atoi錛?#160;<br><br>#include <cstdlib> <br>#include <string> <br><br>std::string text = "152"; <br>int number = std::atoi( text.c_str() ); <br>if (errno == ERANGE) //鍙兘鏄痵td::errno <br>{ <br>//number鍙兘鐢變簬榪囧ぇ鎴栬繃灝忚屼笉鑳藉畬鍏ㄥ瓨鍌?#160;<br>} <br>else if (errno == ????) <br>//鍙兘鏄疎INVAL <br>{ <br>//涓嶈兘杞崲鎴愪竴涓暟瀛?#160;<br>} <br><br>2) 鍦–++鏍囧噯搴撻噷闈紝浣跨敤stringstream錛?stringstream 鍙互鐢ㄤ簬鍚勭鏁版嵁綾誨瀷涔嬮棿鐨勮漿鎹? <br><br>#include <sstream> <br>#include <string> <br><br>std::string text = "152"; <br>int number; <br>std::stringstream ss; <br><br><br>ss < < text;//鍙互鏄叾浠栨暟鎹被鍨?#160;<br>ss >> number; //string -> int <br>if (! ss.good()) <br>{ <br>//閿欒鍙戠敓 <br>} <br><br><br>ss < < number;// int->string <br>string str = ss.str(); <br>if (! ss.good()) <br>{ <br>//閿欒鍙戠敓 <br>} <br><br>3) 鍦˙oost搴撻噷闈紝浣跨敤lexical_cast錛?#160;<br><br>#include <boost/lexical_cast.hpp> <br>#include <string> <br><br>try <br>{ <br>std::string text = "152"; <br>int number = boost::lexical_cast < int >( text ); <br>} <br>catch( const boost::bad_lexical_cast & ) <br>{ <br>//杞崲澶辮觸 <br>}                      <br><br>2.string 杞?CString <br>CString.format(”%s”, string.c_str()); <br>鐢╟_str()紜疄姣攄ata()瑕佸ソ錛?#160;<br><br><br>3.char 杞?CString <br>CString.format(”%s”, char*); <br><br>4.char 杞?string <br>string s(char *); <br>鍙兘鍒濆鍖栵紝鍦ㄤ笉鏄垵濮嬪寲鐨勫湴鏂規渶濂借繕鏄敤assign(). <br><br><br>5.string 杞?char * <br>char *p = string.c_str(); <br><br>6.CString 杞?string <br>string s(CString.GetBuffer()); <br>GetBuffer()鍚庝竴瀹氳ReleaseBuffer(),鍚﹀垯灝辨病鏈夐噴鏀劇紦鍐插尯鎵鍗犵殑絀洪棿. <br><br>7.瀛楃涓茬殑鍐呭杞崲涓哄瓧絎︽暟緇勫拰C鈥攕tring <br>(1)  data(),榪斿洖娌℃湁”\0“鐨勫瓧絎︿覆鏁扮粍 <br>(2)  c_str()錛岃繑鍥炴湁”\0“鐨勫瓧絎︿覆鏁扮粍 <br>(3)  copy() <br><br>8.CString涓巌nt銆乧har*銆乧har[100]涔嬮棿鐨勮漿鎹?#160;<br><br>(1) CString浜掕漿int <br><br>灝嗗瓧絎﹁漿鎹負鏁存暟錛屽彲浠ヤ嬌鐢╝toi銆乢atoi64鎴朼tol銆傝屽皢鏁板瓧杞崲涓篊String鍙橀噺錛屽彲浠ヤ嬌鐢–String鐨凢ormat鍑芥暟銆傚 <br>CString s; <br>int i = 64; <br>s.Format(”%d”, i) <br>Format鍑芥暟鐨勫姛鑳藉緢寮猴紝鍊煎緱浣犵爺絀朵竴涓嬨?#160;<br><br>void CStrDlg::OnButton1() <br>{ <br>  CString <br>  ss=”1212.12″; <br>  int temp=atoi(ss); <br>  CString aa; <br>  aa.Format(”%d”,temp); <br>  AfxMessageBox(”var is ” + aa); <br>} <br><br>(2) CString浜掕漿char* <br><br>///char * TO cstring <br>CString strtest; <br>char * charpoint; <br>charpoint=”give string a value”; //? <br>strtest=charpoint; <br><br>///cstring TO char * <br>charpoint=strtest.GetBuffer(strtest.GetLength()); <br><br>(3) 鏍囧噯C閲屾病鏈塻tring,char *==char []==string, 鍙互鐢–String.Format(”%s”,char *)榪欎釜鏂規硶鏉ュ皢char *杞垚CString銆?#160;<br>    瑕佹妸CString杞垚char *錛岀敤鎿嶄綔絎︼紙LPCSTR錛塁String灝卞彲浠ヤ簡銆?#160;<br>    CString杞崲 char[100] <br>  char a[100]; <br>  CString str(”aaaaaa”); <br>  strncpy(a,(LPCTSTR)str,sizeof(a)); </span> <img src ="http://m.shnenglu.com/maosher/aggbug/86250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/maosher/" target="_blank">Brandon</a> 2009-05-31 12:38 <a href="http://m.shnenglu.com/maosher/archive/2009/05/31/86250.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>娉涘瀷綆楁硶http://m.shnenglu.com/maosher/archive/2009/04/10/79467.htmlBrandonBrandonFri, 10 Apr 2009 04:27:00 GMThttp://m.shnenglu.com/maosher/archive/2009/04/10/79467.htmlhttp://m.shnenglu.com/maosher/comments/79467.htmlhttp://m.shnenglu.com/maosher/archive/2009/04/10/79467.html#Feedback0http://m.shnenglu.com/maosher/comments/commentRss/79467.htmlhttp://m.shnenglu.com/maosher/services/trackbacks/79467.html

鎷瘋礉錛?br>

copy錛堬級
reverse_copy()
rotate_copy()
remove_copy()  鎷瘋礉涓嶇瓑浜庢煇鍊肩殑鍏冪礌鍒板彟涓涓簭鍒椼?br>remove_copy_if() 鎷瘋礉絎﹀悎鏉′歡鐨勫埌鍙︿竴涓簭鍒椼?/p>

濉厖鍜岀敓鎴愶細
fill()
fill_n() 濉厖搴忓垪涓殑n涓厓绱犮?br>generate錛堬級涓哄簭鍒椾腑鐨勬瘡涓厓绱犺皟鐢╣en錛堬級鍑芥暟銆?/p>

鎺掑垪錛?br>next_permuttion() 鍚庝竴涓帓鍒椼?br>prev_permutation()

partition() 鍒掑垎錛屽皢婊¤凍鏉′歡鐨勫厓绱犵Щ鍔ㄥ埌搴忓垪鐨勫墠闈€?br>stable_partition()

鏌ユ壘鍜屾浛鎹細
find錛堬級
binary_search() 鍦ㄤ竴涓凡緇忔湁欏哄簭鐨勫簭鍒椾笂鏌ユ壘銆?br>find_if()
search() 媯鏌ョ浜屼釜搴忓垪鏄惁鍦ㄧ涓涓簭鍒椾腑鍑虹幇錛屼笖欏哄簭鐩稿悓銆?/p>

鍒犻櫎錛氭敞鎰忓繀欏昏皟鐢╡rase錛堬級鏉ョ湡姝e垹闄?br>remove錛堬級
unique錛堬級鍒犻櫎鐩擱偦閲嶅鍏冪礌錛屾渶濂界幇鎺掑簭銆?/p>

鍚堝茍搴忓垪錛?br>merge錛堬級

鏁板肩畻娉曪細
accumulate錛堬級 瀵瑰簭鍒楃殑姣忎釜鍏冪礌榪涜榪愮畻鍚庢眰鍜屻?br>transform錛堬級 涔熷彲浠ュ姣忎釜鍏冪礌榪涜榪愮畻銆?br>璁℃暟錛?br>size錛堬級鎬諱釜鏁般?br>count錛堬級絳変簬鏌愬肩殑鍏冪礌涓暟銆?/p>

adjacent_difference 搴忓垪涓殑鍚庝竴涓噺鍓嶄笌浠栫浉閭葷殑鍓嶄竴涓緱鍒版柊鐨勫簭鍒椼?/p>

adiacent_find

 accumlate 錛?/span> iterator 瀵規爣蹇楃殑搴忓垪涓殑鍏冪礌涔嬪拰錛屽姞鍒頒竴涓敱 init 鎸囧畾鐨勫垵濮嬪間笂銆傞噸杞界殑鐗堟湰涓嶅啀鍋氬姞娉曪紝鑰屾槸浼犺繘鏉ョ殑浜屽厓鎿嶄綔絎﹁搴旂敤鍒板厓绱犱笂銆?/span> 

adjacent_different 錛氬垱寤轟竴涓柊搴忓垪錛岃搴忓垪鐨勬瘡涓柊鍊奸兘浠h〃浜嗗綋鍓嶅厓绱犱笌涓婁竴涓厓绱犵殑宸傞噸杞界増鏈敤鎸囧畾鐨勪簩鍏冩搷浣滆綆楃浉閭誨厓绱犵殑宸?/font> 
adjacent_find 
錛氬湪 iterator 瀵規爣蹇楃殑鍏冪礌鑼冨洿鍐咃紝鏌ユ壘涓瀵圭浉閭葷殑閲嶅鍏冪礌錛屽鏋滄壘鍒拌繑鍥炰竴涓?/span> ForwardIterator 錛屾寚鍚戣繖瀵瑰厓绱犵殑絎竴涓厓绱犮傚惁鍒欒繑鍥?/span> last 銆傞噸杞界増鏈嬌鐢ㄨ緭鍏ョ殑浜屽厓鎿嶄綔絎︿唬鏇跨浉絳夌殑鍒ゆ柇銆?/span> 
binary_search 
錛氬湪鏈夊簭搴忓垪涓煡鎵?/span> value 錛屽鏋滄壘鍒拌繑鍥?/span> true 銆傞噸杞界殑鐗堟湰浣跨敤鎸囧畾鐨勬瘮杈冨嚱鏁板璞℃垨鑰呭嚱鏁版寚閽堟潵鍒ゆ柇鐩哥瓑銆?/span> 
copy 
錛氬鍒跺簭鍒椼?/font> 
copy_backward 
錛氶櫎浜嗗厓绱犱互鐩稿弽鐨勯『搴忚鎷瘋礉澶栵紝鍒殑鍜?/span> copy 鐩稿悓銆?/span> 
count 
錛氬埄鐢ㄧ瓑浜庢搷浣滅錛屾妸鏍囧織鑼冨洿綾葷殑鍏冪礌涓庤緭鍏ョ殑鍊艱繘琛屾瘮杈冿紝騫惰繑鍥炵浉絳夊厓绱犵殑涓暟銆?/font> 
count_if 
錛氬浜庢爣蹇楄寖鍥寸被鐨勫厓绱狅紝搴旂敤杈撳叆鐨勬搷浣滅錛屽茍榪斿洖緇撴灉涓?/span> true 鐨勬鏁般?/span> 
equal 
錛氬鏋滀袱涓簭鍒楀湪鑼冨洿鍐呯殑鍏冪礌閮界浉絳夛紝鍒?/span> equal 榪斿洖 true 銆傞噸杞界増鏈嬌鐢ㄨ緭鍏ョ殑鎿嶄綔絎︿唬鏇夸簡榛樿鐨勭瓑浜庢搷浣滅銆?/span> 
equal_range 
錛氳繑鍥炰竴瀵?/span> iterator 錛岀涓涓?/span> iterator 琛ㄧず鐢?/span> lower_bound 榪斿洖鐨?/span> iterator 錛岀浜屼釜琛ㄧず鐢?/span> upper_bound 榪斿洖鐨?/span> iterator鍊箋?/span> 
fill 
錛氬皢杈撳叆鐨勫肩殑鎷瘋礉璧嬬粰鑼冨洿鍐呯殑姣忎釜鍏冪礌銆?/font> 
fill_n 
錛氬皢杈撳叆鐨勫艱祴鍊肩粰 first 鍒?/span> frist+n 鑼冨洿鍐呯殑鍏冪礌銆?/span> 
find 
錛氬埄鐢ㄥ簳灞傚厓绱犵殑絳変簬鎿嶄綔絎︼紝瀵硅寖鍥村唴鐨勫厓绱犱笌杈撳叆鐨勫艱繘琛屾瘮杈冦傚綋鍖歸厤鏃訛紝緇撴潫鎼滅儲錛岃繑鍥炶鍏冪礌鐨勪竴涓?/span> InputIterator 銆?/span> 
find_if 
錛氫嬌鐢ㄨ緭鍏ョ殑鍑芥暟鏇夸唬浜嗙瓑浜庢搷浣滅鎵ц浜?/span> find 銆?/span> 
find_end 
錛氬湪鑼冨洿鍐呮煡鎵?#8220;鐢辮緭鍏ョ殑鍙﹀涓涓?/span> iterator 瀵規爣蹇楃殑絎簩涓簭鍒?#8221;鐨勬渶鍚庝竴嬈″嚭鐜般傞噸杞界増鏈腑浣跨敤浜嗙敤鎴瘋緭鍏ョ殑鎿嶄綔絎︽浛浠g瓑浜庢搷浣溿?/span> 
find_first_of 
錛氬湪鑼冨洿鍐呮煡鎵?#8220;鐢辮緭鍏ョ殑鍙﹀涓涓?/span> iterator 瀵規爣蹇楃殑絎簩涓簭鍒?#8221;涓殑浠繪剰涓涓厓绱犵殑絎竴嬈″嚭鐜般傞噸杞界増鏈腑浣跨敤浜嗙敤鎴瘋嚜瀹氫箟鐨勬搷浣滅銆?/span> 
for_each 
錛氫緷嬈″鑼冨洿鍐呯殑鎵鏈夊厓绱犳墽琛岃緭鍏ョ殑鍑芥暟銆?/font> 
generate 
錛氶氳繃瀵硅緭鍏ョ殑鍑芥暟 gen 鐨勮繛緇皟鐢ㄦ潵濉厖鎸囧畾鐨勮寖鍥淬?/span> 
generate_n 
錛氬~鍏?/span> n 涓厓绱犮?/span> 
includes 
錛氬垽鏂?/span> [first1, last1) 鐨勪竴涓厓绱犳槸鍚﹁鍖呭惈鍦ㄥ彟澶栦竴涓簭鍒椾腑銆備嬌鐢ㄥ簳灞傚厓绱犵殑 <= 鎿嶄綔絎︼紝閲嶈澆鐗堟湰浣跨敤鐢ㄦ埛杈撳叆鐨勫嚱鏁般?/span> 
inner_product 
錛氬涓や釜搴忓垪鍋氬唴縐?/span> ( 瀵瑰簲鐨勫厓绱犵浉涔橈紝鍐嶆眰鍜?/span> ) 錛屽茍灝嗗唴縐姞鍒頒竴涓緭鍏ョ殑鐨勫垵濮嬪間笂銆傞噸杞界増鏈嬌鐢ㄤ簡鐢ㄦ埛瀹氫箟鐨勬搷浣溿?/span> 
inner_merge 
錛氬悎騫朵袱涓帓榪囧簭鐨勮繛緇簭鍒楋紝緇撴灉搴忓垪瑕嗙洊浜嗕袱绔寖鍥達紝閲嶈澆鐗堟湰浣跨敤杈撳叆鐨勬搷浣滆繘琛屾帓搴忋?/font> 
iter_swap 
錛氫氦鎹袱涓?/span> ForwardIterator 鐨勫箋?/span> 
lexicographical_compare 
錛氭瘮杈冧袱涓簭鍒椼傞噸杞界増鏈嬌鐢ㄤ簡鐢ㄦ埛鑷畾涔夌殑姣旇緝鎿嶄綔銆?/font> 
lower_bound 
錛氳繑鍥炰竴涓?/span> iterator 錛屽畠鎸囧悜鍦ㄨ寖鍥村唴鐨勬湁搴忓簭鍒椾腑鍙互鎻掑叆鎸囧畾鍊艱屼笉鐮村潖瀹瑰櫒欏哄簭鐨勭涓涓綅緗傞噸杞藉嚱鏁頒嬌鐢ㄤ簡鑷畾涔夌殑姣旇緝鎿嶄綔銆?/span> 
max 
錛氳繑鍥炰袱涓厓绱犱腑鐨勮緝澶х殑涓涓紝閲嶈澆鐗堟湰浣跨敤浜嗚嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/font> 
max_element 
錛氳繑鍥炰竴涓?/span> iterator 錛屾寚鍑哄簭鍒椾腑鏈澶х殑鍏冪礌銆傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/span> 
min 
錛氫袱涓厓绱犱腑鐨勮緝灝忚呫傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/font> 
min_element 
錛氱被浼間笌 max_element 錛屼笉榪囪繑鍥炴渶灝忕殑鍏冪礌銆?/span> 
merge 
錛氬悎騫朵袱涓湁搴忓簭鍒楋紝騫跺瓨鏀懼埌鍙﹀涓涓簭鍒椾腑銆傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冦?/font> 
mismatch 
錛氬茍琛岀殑姣旇緝涓や釜搴忓垪錛屾寚鍑虹涓涓笉鍖歸厤鐨勪綅緗紝瀹冭繑鍥炰竴瀵?/span> iterator 錛屾爣蹇楃涓涓笉鍖歸厤鐨勫厓绱犱綅緗傚鏋滈兘鍖歸厤錛岃繑鍥炴瘡涓鍣ㄧ殑 last 銆傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/span> 
next_permutation 
錛氬彇鍑哄綋鍓嶈寖鍥村唴鐨勬帓鍒楋紝騫跺皢鍏墮噸鏂版帓搴忎負涓嬩竴涓帓鍒椼傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/font> 
nth_element 
錛氬皢鑼冨洿鍐呯殑搴忓垪閲嶆柊鎺掑簭錛屼嬌鎵鏈夊皬浜庣 n 涓厓绱犵殑鍏冪礌閮藉嚭鐜板湪瀹冨墠闈紝鑰屽ぇ浜庡畠鐨勯兘鍑虹幇鍦ㄥ悗闈紝閲嶈澆鐗堟湰浣跨敤浜嗚嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/span> 
partial_sort 
錛氬鏁翠釜搴忓垪鍋氶儴鍒嗘帓搴忥紝琚帓搴忓厓绱犵殑涓暟姝eソ鍙互琚斁鍒拌寖鍥村唴銆傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/font> 
partial_sort_copy 
錛氫笌 partial_sort 鐩稿悓錛岄櫎浜嗗皢緇忚繃鎺掑簭鐨勫簭鍒楀鍒跺埌鍙﹀涓涓鍣ㄣ?/span> 
partial_sum 
錛氬垱寤轟竴涓柊鐨勫厓绱犲簭鍒楋紝鍏朵腑姣忎釜鍏冪礌鐨勫間唬琛ㄤ簡鑼冨洿鍐呰浣嶇疆涔嬪墠鎵鏈夊厓绱犱箣鍜屻傞噸杞界増鏈嬌鐢ㄤ簡鑷畾涔夋搷浣滄浛浠e姞娉曘?/font> 
partition 
錛氬鑼冨洿鍐呭厓绱犻噸鏂版帓搴忥紝浣跨敤杈撳叆鐨勫嚱鏁幫紝鎶婅綆楃粨鏋滀負 true 鐨勫厓绱犻兘鏀懼湪緇撴灉涓?/span> false 鐨勫厓绱犱箣鍓嶃?/span> 
prev_permutation 
錛氬彇鍑鴻寖鍥村唴鐨勫簭鍒楀茍灝嗗畠閲嶆柊鎺掑簭涓轟笂涓涓簭鍒椼傚鏋滀笉瀛樺湪涓婁竴涓簭鍒楀垯榪斿洖 false 銆傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/span> 
random_shuffle 
錛氬鑼冨洿鍐呯殑鍏冪礌闅忔満璋冩暣嬈″簭銆傞噸杞界増鏈緭鍏ヤ竴涓殢鏈烘暟浜х敓鎿嶄綔銆?/font> 
remove 
錛氬垹闄ゅ湪鑼冨洿鍐呯殑鎵鏈夌瓑浜庢寚瀹氱殑鍏冪礌錛屾敞鎰忥紝璇ュ嚱鏁板茍涓嶇湡姝e垹闄ゅ厓绱犮傚唴緗暟緇勪笉閫傚悎浣跨敤 remove 鍜?/span> remove_if 鍑芥暟銆?/span> 
remove_copy 
錛氬皢鎵鏈変笉鍖歸厤鐨勫厓绱犻兘澶嶅埗鍒頒竴涓寚瀹氬鍣紝榪斿洖鐨?/span> OutputIterator 鎸囧悜琚嫹璐濈殑鏈厓绱犵殑涓嬩竴涓綅緗?/span> 
remove_if 
錛氬垹闄ゆ墍鏈夎寖鍥村唴杈撳叆鎿嶄綔緇撴灉涓?/span> true 鐨勫厓绱犮?/span> 
remove_copy_if 
錛氬皢鎵鏈変笉鍖歸厤鐨勫厓绱犳嫹璐濆埌涓涓寚瀹氬鍣ㄣ?/font> 
replace 
錛氬皢鑼冨洿鍐呯殑鎵鏈夌瓑浜?/span> old_value 鐨勫厓绱犻兘鐢?/span> new_value 鏇夸唬銆?/span> 
replace_copy 
錛氫笌 replace 綾諱技錛屼笉榪囧皢緇撴灉鍐欏叆鍙﹀涓涓鍣ㄣ?/span> 
replace_if 
錛氬皢鑼冨洿鍐呯殑鎵鏈夋搷浣滅粨鏋滀負 true 鐨勫厓绱犵敤鏂板兼浛浠c?/span> 
replace_copy_if 
錛氱被浼間笌 replace_if 錛屼笉榪囧皢緇撴灉鍐欏叆鍙﹀涓涓鍣ㄣ?/span> 
reverse 
錛氬皢鑼冨洿鍐呭厓绱犻噸鏂版寜鍙嶅簭鎺掑垪銆?/font> 
reverse_copy 
錛氱被浼間笌 reverse 錛屼笉榪囧皢緇撴灉鍐欏叆鍙﹀涓涓鍣ㄣ?/span> 
rotate 
錛氬皢鑼冨洿鍐呯殑鍏冪礌縐誨埌瀹瑰櫒鏈熬錛岀敱 middle 鎸囧悜鐨勫厓绱犳垚涓哄鍣ㄧ涓涓厓绱犮?/span> 
rotate_copy 
錛氱被浼間笌 rotate 錛屼笉榪囧皢緇撴灉鍐欏叆鍙﹀涓涓鍣ㄣ?/span> 
search 
錛氱粰鍑轟簡涓や釜鑼冨洿錛岃繑鍥炰竴涓?/span> iterator 錛屾寚鍚戝湪鑼冨洿鍐呯涓嬈″嚭鐜板瓙搴忓垪鐨勪綅緗傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/span> 
search_n 
錛氬湪鑼冨洿鍐呮煡鎵?/span> value 鍑虹幇 n 嬈$殑瀛愬簭鍒椼傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/span> 
set_difference 
錛氭瀯閫犱竴涓帓榪囧簭鐨勫簭鍒楋紝鍏朵腑鐨勫厓绱犲嚭鐜板湪絎竴涓簭鍒椾腑錛屼絾鏄笉鍖呭惈鍦ㄧ浜屼釜搴忓垪涓傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/font> 
set_intersection 
錛氭瀯閫犱竴涓帓榪囧簭鐨勫簭鍒楋紝鍏朵腑鐨勫厓绱犲湪涓や釜搴忓垪涓兘瀛樺湪銆傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/font> 
set_symmetric_difference 
錛氭瀯閫犱竴涓帓榪囧簭鐨勫簭鍒楋紝鍏朵腑鐨勫厓绱犲湪絎竴涓簭鍒椾腑鍑虹幇錛屼絾鏄笉鍑虹幇鍦ㄧ浜屼釜搴忓垪涓傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/font> 
set_union 
錛氭瀯閫犱竴涓帓榪囧簭鐨勫簭鍒楋紝瀹冨寘鍚袱涓簭鍒椾腑鐨勬墍鏈夌殑涓嶉噸澶嶅厓绱犮傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/font> 
sort 
錛氫互鍗囧簭閲嶆柊鎺掑垪鑼冨洿鍐呯殑鍏冪礌錛岄噸杞界増鏈嬌鐢ㄤ簡鑷畾涔夌殑姣旇緝鎿嶄綔銆?/font> 
stable_partition 
錛氫笌 partition 綾諱技錛屼笉榪囧畠涓嶄繚璇佷繚鐣欏鍣ㄤ腑鐨勭浉瀵歸『搴忋?/span> 
stable_sort 
錛氱被浼間笌 sort 錛屼笉榪囦繚鐣欑浉絳夊厓绱犱箣闂寸殑欏哄簭鍏崇郴銆?/span> 
swap 
錛氫氦鎹㈠瓨鍌ㄥ湪涓や釜瀵硅薄涓殑鍊箋?/font> 
swap_range 
錛氬皢鍦ㄨ寖鍥村唴鐨勫厓绱犱笌鍙﹀涓涓簭鍒楃殑鍏冪礌鍊艱繘琛屼氦鎹€?/font> 
transform 
錛氬皢杈撳叆鐨勬搷浣滀綔鐢ㄥ湪鑼冨洿鍐呯殑姣忎釜鍏冪礌涓婏紝騫朵駭鐢熶竴涓柊鐨勫簭鍒椼傞噸杞界増鏈皢鎿嶄綔浣滅敤鍦ㄤ竴瀵瑰厓绱犱笂錛屽彟澶栦竴涓厓绱犳潵鑷緭鍏ョ殑鍙﹀涓涓簭鍒椼傜粨鏋滆緭鍑哄埌鎸囧畾鐨勫鍣ㄣ?/font> 
unique 
錛氭竻闄ゅ簭鍒椾腑閲嶅鐨勫厓绱狅紝鍜?/span> remove 綾諱技錛屽畠涔熶笉鑳界湡姝g殑鍒犻櫎鍏冪礌銆傞噸杞界増鏈嬌鐢ㄤ簡鑷畾涔夌殑鎿嶄綔銆?/span> 
unique_copy 
錛氱被浼間笌 unique 錛屼笉榪囧畠鎶婄粨鏋滆緭鍑哄埌鍙﹀涓涓鍣ㄣ?/span> 
upper_bound 
錛氳繑鍥炰竴涓?/span> iterator 錛屽畠鎸囧悜鍦ㄨ寖鍥村唴鐨勬湁搴忓簭鍒椾腑鎻掑叆 value 鑰屼笉鐮村潖瀹瑰櫒欏哄簭鐨勬渶鍚庝竴涓綅緗紝璇ヤ綅緗爣蹇椾簡涓涓ぇ浜?/span> value 鐨勫箋傞噸杞界増鏈嬌鐢ㄤ簡杈撳叆鐨勬瘮杈冩搷浣溿?/span> 
鍫嗙畻娉曪細 C++ 鏍囧噯搴撴彁渚涚殑鏄?/span> max-heap 銆備竴鍏辯敱浠ヤ笅 4 涓硾鍨嬪爢綆楁硶銆?/span> 
make_heap 
錛氭妸鑼冨洿鍐呯殑鍏冪礌鐢熸垚涓涓爢銆傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/font> 
pop_heap 
錛氬茍涓嶆槸鐪熸鐨勬妸鏈澶у厓绱犱粠鍫嗕腑寮瑰嚭錛岃屾槸閲嶆柊鎺掑簭鍫嗐傚畠鎶?/span> first 鍜?/span> last-1 浜ゆ崲錛岀劧鍚庨噸鏂板仛鎴愪竴涓爢銆傚彲浠ヤ嬌鐢ㄥ鍣ㄧ殑 back 鏉ヨ闂“寮瑰嚭“鐨勫厓绱犳垨鑰呬嬌鐢?/span> pop_back 鏉ョ湡姝g殑鍒犻櫎銆傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/span> 
push_heap 
錛氬亣璁?/span> first 鍒?/span> last-1 鏄竴涓湁鏁堢殑鍫嗭紝瑕佽鍔犲叆鍫嗙殑鍏冪礌鍦ㄤ綅緗?/span> last-1 錛岄噸鏂扮敓鎴愬爢銆傚湪鎸囧悜璇ュ嚱鏁板墠錛屽繀欏誨厛鎶婂厓绱犳彃鍏ュ鍣ㄥ悗銆傞噸杞界増鏈嬌鐢ㄦ寚瀹氱殑姣旇緝銆?/span> 
sort_heap 
錛氬鑼冨洿鍐呯殑搴忓垪閲嶆柊鎺掑簭錛屽畠鍋囪璇ュ簭鍒楁槸涓湁搴忕殑鍫嗐傞噸杞界増鏈嬌鐢ㄨ嚜瀹氫箟鐨勬瘮杈冩搷浣溿?/font>



Brandon 2009-04-10 12:27 鍙戣〃璇勮
]]>
璇﹁Вtypedef 鐨勭敤娉?/title><link>http://m.shnenglu.com/maosher/archive/2009/04/10/79416.html</link><dc:creator>Brandon</dc:creator><author>Brandon</author><pubDate>Fri, 10 Apr 2009 01:20:00 GMT</pubDate><guid>http://m.shnenglu.com/maosher/archive/2009/04/10/79416.html</guid><wfw:comment>http://m.shnenglu.com/maosher/comments/79416.html</wfw:comment><comments>http://m.shnenglu.com/maosher/archive/2009/04/10/79416.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/maosher/comments/commentRss/79416.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/maosher/services/trackbacks/79416.html</trackback:ping><description><![CDATA[     鎽樿: typedef 鐨勭敤娉?#160;--鎽樿嚜涓浣峜nblog鐨勪竴浣嶅ぇ渚?#160;鐢ㄩ斾竴錛?#160;瀹氫箟涓縐嶇被鍨嬬殑鍒悕錛岃屼笉鍙槸綆鍗曠殑瀹忔浛鎹€傚彲浠ョ敤浣滃悓鏃跺0鏄庢寚閽堝瀷鐨勫涓璞°傛瘮濡傦細 char* pa, pb;  // 榪欏鏁頒笉絎﹀悎鎴戜滑鐨勬剰鍥撅紝瀹冨彧澹版槑浜嗕竴涓寚鍚戝瓧絎﹀彉閲忕殑鎸囬拡錛?#160;// 鍜屼竴涓瓧絎﹀彉閲忥紱 浠ヤ笅鍒欏彲琛岋細 t...  <a href='http://m.shnenglu.com/maosher/archive/2009/04/10/79416.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/maosher/aggbug/79416.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/maosher/" target="_blank">Brandon</a> 2009-04-10 09:20 <a href="http://m.shnenglu.com/maosher/archive/2009/04/10/79416.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>綾誨瀷杞崲http://m.shnenglu.com/maosher/archive/2009/04/03/78794.htmlBrandonBrandonFri, 03 Apr 2009 03:10:00 GMThttp://m.shnenglu.com/maosher/archive/2009/04/03/78794.htmlhttp://m.shnenglu.com/maosher/comments/78794.htmlhttp://m.shnenglu.com/maosher/archive/2009/04/03/78794.html#Feedback0http://m.shnenglu.com/maosher/comments/commentRss/78794.htmlhttp://m.shnenglu.com/maosher/services/trackbacks/78794.html鏄懼紡綾誨瀷杞崲鍙堣縐頒箣涓?寮哄埗綾誨瀷杞崲銆?#160;
C     椋庢牸錛?(type-id) 
C++椋庢牸錛?static_cast銆乨ynamic_cast銆乺einterpret_cast銆佸拰const_cast 
C椋庢牸鐨勫己鍒剁被鍨嬭漿鎹㈡槸鏈濂戒笉瑕佺敤鐨勶紝鏈濂芥槸浣跨敤鏍囧噯鐨凜++椋庢牸鐨勮漿鎹㈢銆?#160;


static_cast 
鐢ㄦ硶錛?/strong>static_cast < type-id > ( expression ) 
璇存槑錛?/strong>璇ヨ繍綆楃鎶奺xpression杞崲涓簍ype-id綾誨瀷錛屼絾娌℃湁榪愯鏃剁被鍨嬫鏌ユ潵淇濊瘉杞崲鐨勫畨鍏ㄦс?#160;
涓昏鐢ㄦ硶錛?/strong> 
鐢ㄤ簬綾誨眰嬈$粨鏋勪腑鍩虹被鍜屽瓙綾諱箣闂存寚閽堟垨寮曠敤鐨勮漿鎹€傝繘琛屼笂琛岃漿鎹紙鎶婂瓙綾葷殑鎸囬拡鎴栧紩鐢ㄨ漿鎹㈡垚鍩虹被琛ㄧず錛夋槸瀹夊叏鐨勶紱榪涜涓嬭杞崲錛堟妸鍩虹被鎸囬拡鎴栧紩鐢ㄨ漿鎹㈡垚瀛愮被鎸囬拡鎴栧紩鐢級鏃訛紝鐢變簬娌℃湁鍔ㄦ佺被鍨嬫鏌ワ紝鎵浠ユ槸涓嶅畨鍏ㄧ殑銆?#160;
鐢ㄤ簬鍩烘湰鏁版嵁綾誨瀷涔嬮棿鐨勮漿鎹紝濡傛妸int杞崲鎴恈har錛屾妸int杞崲鎴恊num銆傝繖縐嶈漿鎹㈢殑瀹夊叏鎬т篃瑕佸紑鍙戜漢鍛樻潵淇濊瘉銆?#160;
鎶妚oid鎸囬拡杞崲鎴愮洰鏍囩被鍨嬬殑鎸囬拡(涓嶅畨鍏?!) 
鎶婁換浣曠被鍨嬬殑琛ㄨ揪寮忚漿鎹㈡垚void綾誨瀷銆?#160;
娉ㄦ剰錛歴tatic_cast涓嶈兘杞崲鎺塭xpression鐨刢onst銆乿olitale銆佹垨鑰卂_unaligned灞炴с?#160;

dynamic_cast 
鐢ㄦ硶錛?/strong>dynamic_cast < type-id > ( expression ) 
璇存槑錛?/strong>璇ヨ繍綆楃鎶奺xpression杞崲鎴恡ype-id綾誨瀷鐨勫璞°俆ype-id蹇呴』鏄被鐨勬寚閽堛佺被鐨勫紩鐢ㄦ垨鑰卾oid *錛涘鏋渢ype-id鏄被鎸囬拡綾誨瀷錛岄偅涔坋xpression涔熷繀欏繪槸涓涓寚閽堬紝濡傛灉type-id鏄竴涓紩鐢紝閭d箞expression涔熷繀欏繪槸涓涓紩鐢ㄣ?#160;
dynamic_cast涓昏鐢ㄤ簬綾誨眰嬈¢棿鐨勪笂琛岃漿鎹㈠拰涓嬭杞崲錛岃繕鍙互鐢ㄤ簬綾諱箣闂寸殑浜ゅ弶杞崲銆?#160;
鍦ㄧ被灞傛闂磋繘琛屼笂琛岃漿鎹㈡椂錛宒ynamic_cast鍜宻tatic_cast鐨勬晥鏋滄槸涓鏍風殑錛?#160;
鍦ㄨ繘琛屼笅琛岃漿鎹㈡椂錛宒ynamic_cast鍏鋒湁綾誨瀷媯鏌ョ殑鍔熻兘錛屾瘮static_cast鏇村畨鍏ㄣ?#160;

reinterpret_cast 
鐢ㄦ硶錛?/strong>reinterpret_cast<type-id> (expression) 
璇存槑錛?/strong>type-id蹇呴』鏄竴涓寚閽堛佸紩鐢ㄣ佺畻鏈被鍨嬨佸嚱鏁版寚閽堟垨鑰呮垚鍛樻寚閽堛?#160;
瀹冨彲浠ユ妸涓涓寚閽堣漿鎹㈡垚涓涓暣鏁幫紝涔熷彲浠ユ妸涓涓暣鏁拌漿鎹㈡垚涓涓寚閽堬紙鍏堟妸涓涓寚閽堣漿鎹㈡垚涓涓暣鏁幫紝 
鍦ㄦ妸璇ユ暣鏁拌漿鎹㈡垚鍘熺被鍨嬬殑鎸囬拡錛岃繕鍙互寰楀埌鍘熷厛鐨勬寚閽堝鹼級銆?#160;
璇ヨ繍綆楃鐨勭敤娉曟瘮杈冨銆?#160;

const_cast 
鐢ㄦ硶錛?/strong>const_cast<type_id> (expression) 
璇存槑錛?/strong>璇ヨ繍綆楃鐢ㄦ潵淇敼綾誨瀷鐨刢onst鎴杤olatile灞炴с傞櫎浜哻onst 鎴杤olatile淇グ涔嬪錛?type_id鍜宔xpression鐨勭被鍨嬫槸涓鏍風殑銆?#160;
甯擱噺鎸囬拡琚漿鍖栨垚闈炲父閲忔寚閽堬紝騫朵笖浠嶇劧鎸囧悜鍘熸潵鐨勫璞★紱 
甯擱噺寮曠敤琚漿鎹㈡垚闈炲父閲忓紩鐢紝騫朵笖浠嶇劧鎸囧悜鍘熸潵鐨勫璞★紱甯擱噺瀵硅薄琚漿鎹㈡垚闈炲父閲忓璞°?br>

Brandon 2009-04-03 11:10 鍙戣〃璇勮
]]>
string 綾?/title><link>http://m.shnenglu.com/maosher/archive/2009/02/08/73200.html</link><dc:creator>Brandon</dc:creator><author>Brandon</author><pubDate>Sun, 08 Feb 2009 02:42:00 GMT</pubDate><guid>http://m.shnenglu.com/maosher/archive/2009/02/08/73200.html</guid><wfw:comment>http://m.shnenglu.com/maosher/comments/73200.html</wfw:comment><comments>http://m.shnenglu.com/maosher/archive/2009/02/08/73200.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/maosher/comments/commentRss/73200.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/maosher/services/trackbacks/73200.html</trackback:ping><description><![CDATA[ <div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 98%; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); "><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top">class String <br><img id="Codehighlighter1_14_240_Open_Image" onclick="this.style.display='none'; Codehighlighter1_14_240_Open_Text.style.display='none'; Codehighlighter1_14_240_Closed_Image.style.display='inline'; Codehighlighter1_14_240_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_14_240_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_14_240_Closed_Text.style.display='none'; Codehighlighter1_14_240_Open_Image.style.display='inline'; Codehighlighter1_14_240_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img src="http://m.shnenglu.com/Images/dot.gif">{ <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">public: <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    String(const char *str = NULL); // 鏅氭瀯閫犲嚱鏁?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    String(const String &other); // 鎷瘋礉鏋勯犲嚱鏁?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    ~ String(void); // 鏋愭瀯鍑芥暟 <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    String & operate =(const String &other); // 璧嬪煎嚱鏁?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">private: <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    char *m_data; // 鐢ㄤ簬淇濆瓨瀛楃涓?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}; <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top">// String 鐨勬瀽鏋勫嚱鏁?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top">String::~String(void) <br><img id="Codehighlighter1_285_350_Open_Image" onclick="this.style.display='none'; Codehighlighter1_285_350_Open_Text.style.display='none'; Codehighlighter1_285_350_Closed_Image.style.display='inline'; Codehighlighter1_285_350_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_285_350_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_285_350_Closed_Text.style.display='none'; Codehighlighter1_285_350_Open_Image.style.display='inline'; Codehighlighter1_285_350_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img src="http://m.shnenglu.com/Images/dot.gif">{ <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    delete [] m_data;// 鐢變簬m_data 鏄唴閮ㄦ暟鎹被鍨?涔熷彲浠ュ啓鎴恉elete m_data; <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">} <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top">// String 鐨勬櫘閫氭瀯閫犲嚱鏁?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top">String::String(const char *str) <br><img id="Codehighlighter1_406_660_Open_Image" onclick="this.style.display='none'; Codehighlighter1_406_660_Open_Text.style.display='none'; Codehighlighter1_406_660_Closed_Image.style.display='inline'; Codehighlighter1_406_660_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_406_660_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_406_660_Closed_Text.style.display='none'; Codehighlighter1_406_660_Open_Image.style.display='inline'; Codehighlighter1_406_660_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img src="http://m.shnenglu.com/Images/dot.gif">{ <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    if(str==NULL) <br><img id="Codehighlighter1_432_513_Open_Image" onclick="this.style.display='none'; Codehighlighter1_432_513_Open_Text.style.display='none'; Codehighlighter1_432_513_Closed_Image.style.display='inline'; Codehighlighter1_432_513_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_432_513_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_432_513_Closed_Text.style.display='none'; Codehighlighter1_432_513_Open_Image.style.display='inline'; Codehighlighter1_432_513_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">    <img src="http://m.shnenglu.com/Images/dot.gif">{ <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">        m_data = new char[1]; // 鑻ヨ兘鍔燦ULL 鍒ゆ柇鍒欐洿濂?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">        *m_data = '\0'; <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">    } <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    else <br><img id="Codehighlighter1_530_657_Open_Image" onclick="this.style.display='none'; Codehighlighter1_530_657_Open_Text.style.display='none'; Codehighlighter1_530_657_Closed_Image.style.display='inline'; Codehighlighter1_530_657_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_530_657_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_530_657_Closed_Text.style.display='none'; Codehighlighter1_530_657_Open_Image.style.display='inline'; Codehighlighter1_530_657_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">    <img src="http://m.shnenglu.com/Images/dot.gif">{ <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">        int length = strlen(str); <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">        m_data = new char[length+1]; // 鑻ヨ兘鍔燦ULL 鍒ゆ柇鍒欐洿濂?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">        strcpy(m_data, str); <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">    } <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">} <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top">// 鎷瘋礉鏋勯犲嚱鏁?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top">String::String(const String &other) <br><img id="Codehighlighter1_712_841_Open_Image" onclick="this.style.display='none'; Codehighlighter1_712_841_Open_Text.style.display='none'; Codehighlighter1_712_841_Closed_Image.style.display='inline'; Codehighlighter1_712_841_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_712_841_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_712_841_Closed_Text.style.display='none'; Codehighlighter1_712_841_Open_Image.style.display='inline'; Codehighlighter1_712_841_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img src="http://m.shnenglu.com/Images/dot.gif">{ <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    int length = strlen(other.m_data); <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    m_data = new char[length+1]; // 鑻ヨ兘鍔燦ULL 鍒ゆ柇鍒欐洿濂?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    strcpy(m_data, other.m_data); <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">} <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top">// 璧嬪煎嚱鏁?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top">String & String::operate =(const String &other) <br><img id="Codehighlighter1_904_1208_Open_Image" onclick="this.style.display='none'; Codehighlighter1_904_1208_Open_Text.style.display='none'; Codehighlighter1_904_1208_Closed_Image.style.display='inline'; Codehighlighter1_904_1208_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_904_1208_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_904_1208_Closed_Text.style.display='none'; Codehighlighter1_904_1208_Open_Image.style.display='inline'; Codehighlighter1_904_1208_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img src="http://m.shnenglu.com/Images/dot.gif">{ <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    // (1) 媯鏌ヨ嚜璧嬪?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    if(this == &other) <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">        return *this; <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    // (2) 閲婃斁鍘熸湁鐨勫唴瀛樿祫婧?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    delete [] m_data; <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    // (3)鍒嗛厤鏂扮殑鍐呭瓨璧勬簮,騫跺鍒跺唴瀹?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    int length = strlen(other.m_data); <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    m_data = new char[length+1]; // 鑻ヨ兘鍔燦ULL 鍒ゆ柇鍒欐洿濂?#160;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    strcpy(m_data, other.m_data); <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    // (4)榪斿洖鏈璞$殑寮曠敤 <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top">    return *this; <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align="top"></div><img src ="http://m.shnenglu.com/maosher/aggbug/73200.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/maosher/" target="_blank">Brandon</a> 2009-02-08 10:42 <a href="http://m.shnenglu.com/maosher/archive/2009/02/08/73200.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>緗戞憳錛堜竴錛?/title><link>http://m.shnenglu.com/maosher/archive/2009/02/08/73193.html</link><dc:creator>Brandon</dc:creator><author>Brandon</author><pubDate>Sat, 07 Feb 2009 17:00:00 GMT</pubDate><guid>http://m.shnenglu.com/maosher/archive/2009/02/08/73193.html</guid><wfw:comment>http://m.shnenglu.com/maosher/comments/73193.html</wfw:comment><comments>http://m.shnenglu.com/maosher/archive/2009/02/08/73193.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/maosher/comments/commentRss/73193.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/maosher/services/trackbacks/73193.html</trackback:ping><description><![CDATA[ 淇濇寔緇熶竴鐨勬帴鍙o紝鑰屽叿浣撹涓轟緷鐓у璞¤屽畾錛屼笉鍚岀殑瀵硅薄鏈変笉鍚岀殑琛屼負錛岃繖涓氨鏄澶氭佺殑綆鍗曡В閲?銆?br><br><br>鍏蜂綋鍦–++璇█涓紝澶氭侀氳繃鎸囬拡鍜屽紩鐢ㄦ潵琛ㄧ幇銆?br>鍗蟲帴鍙d嬌鐢ㄧ埗綾葷殑鎸囬拡鎴栧紩鐢ㄦ潵琛ㄦ槑鎶借薄鐨勭粺涓鐨勬帴鍙o紝鑰岃涓烘牴鎹埗綾繪寚閽堟垨寮曠敤鎵鎸囧悜鍏蜂綋瀛愮被瀵硅薄錛屼笉鍚岀殑瀵硅薄琛ㄧ幇鍑轟笉鍚岀殑琛屼負錛屾涔僀++瀹炵幇澶氭佺殑椋庢牸錛屽叿浣撴潵璇存垜浠湪緙栫▼鐨勬椂鍊欓渶瑕佷嬌鐢ㄦ寚鍚戠埗綾葷殑鎸囬拡鎴栬呭紩鐢紝鐒跺悗鍦ㄥ瓙綾諱腑鏀瑰啓鐖剁被涓殑铏氬嚱鏁幫紝鏈鍚庡啀鎶婂瓙綾誨璞¤祴鍊煎埌鐖剁被鎸囬拡鎴栧紩鐢ㄤ笂銆?br> <br>C++鐨勮櫄鍑芥暟瀹為檯涓婇噰鐢ㄦ暎鍒楄〃鐨勬暟鎹粨鏋勫疄鐜?.<img src ="http://m.shnenglu.com/maosher/aggbug/73193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/maosher/" target="_blank">Brandon</a> 2009-02-08 01:00 <a href="http://m.shnenglu.com/maosher/archive/2009/02/08/73193.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://bnb-gndc.com" target="_blank">国产真实乱偷精品视频免</a>| <a href="http://ahhyez.com" target="_blank">亚洲国产1区</a>| <a href="http://xxxsxx.com" target="_blank">国产农村妇女毛片精品久久麻豆 </a>| <a href="http://3848404.com" target="_blank">在线一区二区日韩</a>| <a href="http://yada-jg.com" target="_blank">亚洲精品久久久久久下一站 </a>| <a href="http://990288.com" target="_blank">av成人手机在线</a>| <a href="http://www-q28.com" target="_blank">日韩一区二区久久</a>| <a href="http://75pppp.com" target="_blank">在线中文字幕一区</a>| <a href="http://xiehaihua.com" target="_blank">一区二区福利</a>| <a href="http://nachang5117.com" target="_blank">亚洲无限av看</a>| <a href="http://wwwyinyinai149.com" target="_blank">欧美精品一区二区三区高清aⅴ</a>| <a href="http://avtaobao7788.com" target="_blank">久久综合电影</a>| <a href="http://kissgz.com" target="_blank">欧美国产激情</a>| <a href="http://bgdete.com" target="_blank">欧美日韩国产黄</a>| <a href="http://wnboke.com" target="_blank">国产精品一区=区</a>| <a href="http://www520590.com" target="_blank">一区二区三区在线免费视频</a>| <a href="http://436212.com" target="_blank">在线日本成人</a>| <a href="http://www92444.com" target="_blank">亚洲欧美大片</a>| <a href="http://3333577.com" target="_blank">久久天天躁狠狠躁夜夜av</a>| <a href="http://www-49hk.com" target="_blank">牛牛国产精品</a>| <a href="http://nztd20.com" target="_blank">亚洲亚洲精品在线观看 </a>| <a href="http://www789yys.com" target="_blank">欧美一区二区三区的</a>| <a href="http://6623555.com" target="_blank">麻豆精品91</a>| <a href="http://www-878009.com" target="_blank">国产精一区二区三区</a>| <a href="http://baidubf.com" target="_blank">亚洲激情在线播放</a>| <a href="http://6u6uuu666.com" target="_blank">亚洲自拍高清</a>| <a href="http://193youwu.com" target="_blank">欧美激情中文字幕在线</a>| <a href="http://sxhrsmjj.com" target="_blank">亚洲一区二区三区高清不卡</a>| <a href="http://340996.com" target="_blank">免费欧美电影</a>| <a href="http://557523.com" target="_blank">国产欧美精品xxxx另类</a>| <a href="http://sdxinqi.com" target="_blank">欧美三级黄美女</a>| <a href="http://k8m9.com" target="_blank">欧美3dxxxxhd</a>| <a href="http://happyelephantv.com" target="_blank">日韩午夜三级在线</a>| <a href="http://sese750.com" target="_blank">欧美在线一二三区</a>| <a href="http://eeii33.com" target="_blank">欧美婷婷久久</a>| <a href="http://099553.com" target="_blank">亚洲精品国产精品国自产在线</a>| <a href="http://www99mmnn.com" target="_blank">亚洲视频欧洲视频</a>| <a href="http://s0247.com" target="_blank">欧美日韩大片</a>| <a href="http://hgx123.com" target="_blank">欧美一区二区黄色</a>| <a href="http://52wenxiu.com" target="_blank">欧美日韩免费高清</a>| <a href="http://www-33tt.com" target="_blank">亚洲国产高潮在线观看</a>| <a href="http://zhuankee.com" target="_blank">久久高清一区</a>| <a href="http://72avav.com" target="_blank">亚洲一区在线免费观看</a>| <a href="http://cz-sensor.com" target="_blank">欧美久久一级</a>| <a href="http://3c3c3c.com" target="_blank">亚洲精品日韩在线</a>| <a href="http://oo853kj.com" target="_blank">欧美二区视频</a>| <a href="http://k91cm.com" target="_blank">久久久久国产一区二区</a>| <a href="http://avtt0.com" target="_blank">国内精品久久久久久影视8</a>| <a href="http://heyzo1031.com" target="_blank">一区二区三区四区五区在线 </a>| <a href="http://2629929.com" target="_blank">亚洲福利免费</a>| <a href="http://csmdjs.com" target="_blank">美女91精品</a>| <a href="http://ipx758.com" target="_blank">久久久久久一区二区三区</a>| <a href="http://gdjuba.com" target="_blank">国产午夜精品久久久久久久</a>| <a href="http://xkm663y.com" target="_blank">欧美日韩精品免费观看视一区二区 </a>| <a href="http://rainbowbpm.com" target="_blank">欧美制服丝袜</a>| <a href="http://638179.com" target="_blank">国产欧美一区二区精品忘忧草</a>| <a href="http://by5263.com" target="_blank">亚洲午夜视频在线</a>| <a href="http://xmt86.com" target="_blank">亚洲美女福利视频网站</a>| <a href="http://ydpszcn.com" target="_blank">国内精品**久久毛片app</a>| <a href="http://haose23.com" target="_blank">夜夜嗨av一区二区三区免费区</a>| <a href="http://www-57549.com" target="_blank">欧美在线黄色</a>| <a href="http://ju255.com" target="_blank">亚洲综合社区</a>| <a href="http://www66617.com" target="_blank">国产精品亚洲综合</a>| <a href="http://cczm4.com" target="_blank">午夜影视日本亚洲欧洲精品</a>| <a href="http://51120guahao.com" target="_blank">亚洲午夜电影网</a>| <a href="http://www-q28.com" target="_blank">国产精品免费一区二区三区观看</a>| <a href="http://qiruiwangluo.com" target="_blank">日韩亚洲欧美成人</a>| <a href="http://486be.com" target="_blank">日韩一级网站</a>| <a href="http://balqueen.com" target="_blank">国产精品亚洲综合一区在线观看 </a>| <a href="http://329374.com" target="_blank">免费在线看一区</a>| <a href="http://6h8c.com" target="_blank">老司机免费视频一区二区</a>| <a href="http://jizz16.com" target="_blank">在线观看一区二区视频</a>| <a href="http://www-34909.com" target="_blank">精品粉嫩aⅴ一区二区三区四区</a>| <a href="http://mascorcg.com" target="_blank">久久aⅴ国产欧美74aaa</a>| <a href="http://122332.com" target="_blank">午夜精彩国产免费不卡不顿大片</a>| <a href="http://98tangav.com" target="_blank">国产精品日韩一区</a>| <a href="http://winkwink333.com" target="_blank">久久精品1区</a>| <a href="http://492541.com" target="_blank">久久一区亚洲</a>| <a href="http://saohu79.com" target="_blank">亚洲天堂黄色</a>| <a href="http://8x588.com" target="_blank">亚洲日本免费</a>| <a href="http://hznaja.com" target="_blank">亚洲日本视频</a>| <a href="http://ahhyez.com" target="_blank">久久激情视频久久</a>| <a href="http://33wbwb.com" target="_blank">亚洲男人的天堂在线aⅴ视频</a>| <a href="http://o6186.com" target="_blank">亚洲精品美女91</a>| <a href="http://ekuyun.com" target="_blank">欧美视频亚洲视频</a>| <a href="http://3737520.com" target="_blank">久久国产精品网站</a>| <a href="http://avse98.com" target="_blank">老鸭窝毛片一区二区三区</a>| <a href="http://ycpeixun.com" target="_blank">亚洲精品视频一区</a>| <a href="http://hsxinbao.com" target="_blank">一区二区三区日韩</a>| <a href="http://xuanxuan88.com" target="_blank">国产一区二区三区日韩</a>| <a href="http://66669801.com" target="_blank">欧美国产91</a>| <a href="http://aimashe.com" target="_blank">国产精品久久久久av</a>| <a href="http://www149aa.com" target="_blank">久久噜噜亚洲综合</a>| <a href="http://5yy6.com" target="_blank">一区二区三区四区国产精品</a>| <a href="http://xxdd19.com" target="_blank">国产精品视频免费一区</a>| <a href="http://by56677.com" target="_blank">久久中文字幕导航</a>| <a href="http://www38ccc.com" target="_blank">欧美精品午夜视频</a>| <a href="http://www92444.com" target="_blank">久久精品国产精品亚洲综合</a>| <a href="http://220fuke.com" target="_blank">欧美a级片网</a>| <a href="http://wwwqm9.com" target="_blank">欧美日韩免费一区二区三区视频 </a>| <a href="http://www5909.com" target="_blank">午夜精品理论片</a>| <a href="http://by3787.com" target="_blank">久久精品国产亚洲精品</a>| <a href="http://huaihuaihuai.com" target="_blank">亚洲欧洲精品一区</a>| <a href="http://339871.com" target="_blank">午夜伦欧美伦电影理论片</a>| <a href="http://fcponteggi.com" target="_blank">亚洲国产精品久久久久</a>| <a href="http://syfeichi.com" target="_blank">在线视频一区观看</a>| <a href="http://5252bnet.com" target="_blank">91久久久久久久久</a>| <a href="http://aaa211.com" target="_blank">羞羞答答国产精品www一本</a>| <a href="http://q731.com" target="_blank">亚洲免费观看高清完整版在线观看熊</a>| <a href="http://jizzdo.com" target="_blank">亚洲视频免费观看</a>| <a href="http://www-3844444.com" target="_blank">亚洲日本在线观看</a>| <a href="http://456dv.com" target="_blank">欧美二区在线</a>| <a href="http://www-888690.com" target="_blank">久久精品成人</a>| <a href="http://www-23918.com" target="_blank">欧美视频一区二</a>| <a href="http://saox28.com" target="_blank">欧美/亚洲一区</a>| <a href="http://961318.com" target="_blank">国产午夜精品一区理论片飘花</a>| <a href="http://012488.com" target="_blank">亚洲国产视频a</a>| <a href="http://7mxing.com" target="_blank">在线观看精品</a>| <a href="http://2220004.com" target="_blank">欧美一区二区三区视频</a>| <a href="http://uniconmgt.com" target="_blank">亚洲欧美日韩高清</a>| <a href="http://7v51.com" target="_blank">欧美日韩一视频区二区</a>| <a href="http://y65v.com" target="_blank">亚洲国产欧美日韩精品</a>| <a href="http://wanshunpu.com" target="_blank">狠狠色伊人亚洲综合网站色</a>| <a href="http://5cok.com" target="_blank">亚洲午夜激情网站</a>| <a href="http://syruili.com" target="_blank">亚洲婷婷综合久久一本伊一区</a>| <a href="http://zyjzz.com" target="_blank">久久免费偷拍视频</a>| <a href="http://whrcjy.com" target="_blank">亚洲欧美国产高清</a>| <a href="http://yichenep.com" target="_blank">欧美精品一区二区三区高清aⅴ</a>| <a href="http://bjjxgcsxy.com" target="_blank">久久精品亚洲热</a>| <a href="http://7115866.com" target="_blank">亚洲精品在线观看视频</a>| <a href="http://jiazhuangma.com" target="_blank">亚洲电影av在线</a>| <a href="http://chaxiangmall.com" target="_blank">欧美综合国产</a>| <a href="http://caoav8.com" target="_blank">久久久久久免费</a>| <a href="http://zhipiao998.com" target="_blank">国产伦精品一区二区三区免费 </a>| <a href="http://writeingo.com" target="_blank">欧美日韩精品综合在线</a>| <a href="http://cnlbogs.com" target="_blank">久久视频国产精品免费视频在线</a>| <a href="http://www-88899.com" target="_blank">欧美视频四区</a>| <a href="http://sh-hxjdkj.com" target="_blank">一区二区冒白浆视频</a>| <a href="http://bbww55.com" target="_blank">一卡二卡3卡四卡高清精品视频</a>| <a href="http://www433ad.com" target="_blank">久久精品国产亚洲5555</a>| <a href="http://11867a.com" target="_blank">久久亚洲美女</a>| <a href="http://dracotek.com" target="_blank">欧美一区91</a>| <a href="http://www13256.com" target="_blank">欧美日本不卡高清</a>| <a href="http://kanebocos.com" target="_blank">亚洲黑丝一区二区</a>| <a href="http://yxtczx.com" target="_blank">亚洲精品你懂的</a>| <a href="http://www333393.com" target="_blank">欧美国产高清</a>| <a href="http://tareandshare.com" target="_blank">亚洲伦理在线免费看</a>| <a href="http://621768.com" target="_blank">亚洲视频中文字幕</a>| <a href="http://hhhtalk.com" target="_blank">国产精品久久久久免费a∨大胸 </a>| <a href="http://remenkan.com" target="_blank">欧美中文在线免费</a>| <a href="http://xpj694.com" target="_blank">国产精品无码专区在线观看</a>| <a href="http://8eya.com" target="_blank">亚洲欧美日韩成人</a>| <a href="http://wwwhhh396.com" target="_blank">欧美在线视频导航</a>| <a href="http://sxhrsmjj.com" target="_blank">黄色成人91</a>| <a href="http://dv6699.com" target="_blank">欧美成人首页</a>| <a href="http://go1818.com" target="_blank">一本综合久久</a>| <a href="http://sdmsjd.com" target="_blank">欧美在线一二三四区</a>| <a href="http://www-136445.com" target="_blank">狠狠色综合色区</a>| <a href="http://eshop999.com" target="_blank">欧美高清视频在线播放</a>| <a href="http://857sds.com" target="_blank">午夜精品福利视频</a>| <a href="http://569658.com" target="_blank">欧美国产日韩一区</a>| <a href="http://zhengnuoxin.com" target="_blank">日韩午夜剧场</a>| <a href="http://dy123456.com" target="_blank">久久久7777</a>| <a href="http://saox28.com" target="_blank">99在线|亚洲一区二区</a>| <a href="http://tzhsdy.com" target="_blank">欧美日韩美女一区二区</a>| <a href="http://xingmaipet.com" target="_blank">亚洲欧美日本国产有色</a>| <a href="http://xkm663y.com" target="_blank">久久亚洲私人国产精品va</a>| <a href="http://leohacks.com" target="_blank">亚洲成色www8888</a>| <a href="http://wslsp.com" target="_blank">欧美三区视频</a>| <a href="http://989p.com" target="_blank">久久精品国产96久久久香蕉</a>| <a href="http://bjzgmember.com" target="_blank">免费影视亚洲</a>| <a href="http://270909.com" target="_blank">亚洲一区中文字幕在线观看</a>| <a href="http://737sihu.com" target="_blank">国内一区二区在线视频观看</a>| <a href="http://97sgg.com" target="_blank">欧美成人a视频</a>| <a href="http://sese750.com" target="_blank">亚洲欧美激情诱惑</a>| <a href="http://www-77537.com" target="_blank">欧美激情一区二区久久久</a>| <a href="http://124909.com" target="_blank">亚洲欧美视频</a>| <a href="http://4446666.com" target="_blank">一区二区日韩伦理片</a>| <a href="http://9273829.com" target="_blank">国产日韩欧美精品一区</a>| <a href="http://0934photo.com" target="_blank">欧美成人午夜激情视频</a>| <a href="http://tk99444.com" target="_blank">亚洲永久网站</a>| <a href="http://sauske.com" target="_blank">亚洲国产成人午夜在线一区 </a>| <a href="http://baoxiniao666.com" target="_blank">国产精自产拍久久久久久</a>| <a href="http://360inns.com" target="_blank">久久综合激情</a>| <a href="http://filark.com" target="_blank">亚洲欧美在线视频观看</a>| <a href="http://8868866.com" target="_blank">亚洲电影观看</a>| <a href="http://liandezhi.com" target="_blank">久久亚洲精选</a>| <a href="http://dahuxu.com" target="_blank">午夜精品一区二区三区在线播放 </a>| <a href="http://xpfuli.com" target="_blank">国产日韩欧美制服另类</a>| <a href="http://ff9222.com" target="_blank">欧美激情一区二区三区在线</a>| <a href="http://cczm4.com" target="_blank">性欧美大战久久久久久久免费观看</a>| <a href="http://www30bxbx.com" target="_blank">欧美国产高清</a>| <a href="http://xsxcn.com" target="_blank">国产亚洲欧美一区在线观看</a>| <a href="http://samucorvin.com" target="_blank">欧美www在线</a>| <a href="http://xmzszx.com" target="_blank">欧美一区二区高清</a>| <a href="http://6673328.com" target="_blank">国产精品99久久99久久久二8</a>| <a href="http://345521.com" target="_blank">亚洲免费久久</a>| <a href="http://seyuav4.com" target="_blank">欧美1区3d</a>| <a href="http://667939.com" target="_blank">老**午夜毛片一区二区三区</a>| <a href="http://wwwyinyinai149.com" target="_blank">国产精品99久久久久久久vr</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>