锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久综合九色,亚洲精品人人,又紧又大又爽精品一区二区http://m.shnenglu.com/lmlf001/category/1496.html涓夋偓鏄庨暅鍨傞縛闊碉紝涔濇挬娓呮硥媧楀皹蹇? zh-cnTue, 20 May 2008 23:40:58 GMTTue, 20 May 2008 23:40:58 GMT60鏍囧噯杈撳叆杈撳嚭鐨勯棶棰?/title><link>http://m.shnenglu.com/lmlf001/archive/2007/10/17/34471.html</link><dc:creator>鑺ヤ箣鑸?/dc:creator><author>鑺ヤ箣鑸?/author><pubDate>Wed, 17 Oct 2007 11:06:00 GMT</pubDate><guid>http://m.shnenglu.com/lmlf001/archive/2007/10/17/34471.html</guid><wfw:comment>http://m.shnenglu.com/lmlf001/comments/34471.html</wfw:comment><comments>http://m.shnenglu.com/lmlf001/archive/2007/10/17/34471.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/lmlf001/comments/commentRss/34471.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lmlf001/services/trackbacks/34471.html</trackback:ping><description><![CDATA[    鍏堢湅涓嬮潰涓涓皬紼嬪簭錛?br><br> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">int</span><span style="color: #000000;"> main(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> argc, _TCHAR</span><span style="color: #000000;">*</span><span style="color: #000000;"> argv[])<br>{<br>        FILE </span><span style="color: #000000;">*</span><span style="color: #000000;">fp</span><span style="color: #000000;">=</span><span style="color: #000000;">fopen(</span><span style="color: #000000;">"</span><span style="color: #000000;">1.txt</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">r+</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #000000;"></span><span style="color: #000000;">        fputc(</span><span style="color: #000000;">'</span><span style="color: #000000;">x</span><span style="color: #000000;">'</span><span style="color: #000000;">,fp);<br>        fputc(</span><span style="color: #000000;">'</span><span style="color: #000000;">x</span><span style="color: #000000;">'</span><span style="color: #000000;">,fp);<br>        fputc(</span><span style="color: #000000;">'</span><span style="color: #000000;">x</span><span style="color: #000000;">'</span><span style="color: #000000;">,fp);<br>        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}</span></div>     1.txt鏂囦歡鍐呭涓篴bcdefg錛岃皟鐢ㄥ嚱鏁頒箣鍚庝負axxxefg錛屾仼錛屾紜?br><br><br> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">int</span><span style="color: #000000;"> main(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> argc, _TCHAR</span><span style="color: #000000;">*</span><span style="color: #000000;"> argv[])<br>{<br>        FILE </span><span style="color: #000000;">*</span><span style="color: #000000;">fp</span><span style="color: #000000;">=</span><span style="color: #000000;">fopen(</span><span style="color: #000000;">"</span><span style="color: #000000;">1.txt</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">rb+</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #000000;">        </span><span style="color: #0000ff;">char</span><span style="color: #000000;"> c</span><span style="color: #000000;">=</span><span style="color: #000000;">fgetc(fp);<br></span><span style="color: #000000;">        fputc(</span><span style="color: #000000;">'</span><span style="color: #000000;">x</span><span style="color: #000000;">'</span><span style="color: #000000;">,fp);<br>        fputc(</span><span style="color: #000000;">'</span><span style="color: #000000;">x</span><span style="color: #000000;">'</span><span style="color: #000000;">,fp);<br>        fputc(</span><span style="color: #000000;">'</span><span style="color: #000000;">x</span><span style="color: #000000;">'</span><span style="color: #000000;">,fp);<br>    </span><span style="color: #0000ff;">    return</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}</span></div>     鑰屼笂闈㈢殑榪欎釜紼嬪簭鍙槸鍔犱簡涓鍙getc錛岃皟鐢ㄥ悗鍗村け鍘諱簡浣滅敤錛屾枃浠跺唴瀹規病鏈夊彂鐢熷彉鍖栵紝浠嶇劧涓篴bcdefg錛屼負浠涔堝憿錛燂紙璇ラ棶棰樺湪Linux涓嬪凡涓嶅瓨鍦級<br>    銆奤nix鐜楂樼駭緙栫▼銆嬪湪浣跨敤璇誨啓鏂瑰紡鎵撳紑鏂囦歡鏃訛紙type涓殑+鍙鳳級錛岃緭鍑虹殑鍚庨潰涓嶈兘鐩存帴璺熻緭鍏ワ紝杈撳叆鐨勫悗闈篃涓嶈兘鐩存帴璺熻緭鍑猴紝鍚﹀垯鍙兘浼氬嚭閿欍傚鏋滈渶瑕佽緭鍑鴻緭鍏ョ浉榪烇紝鍒欎腑闂? 闇璋冪敤fflush,fseek,fsetpos鎴杛ewind絳夋搷浣溿?br>    鏃㈢劧榪欐牱錛岄偅鎴戜滑璇曚竴涓嬶紝鐪嬬湅鑳戒笉鑳借В鍐抽棶棰橈紝鍦ㄤ笂闈唬鐮佷腑fgetc鍜宖putc涓棿鍔犲叆<br> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">        fpos_t pos;<br>        fgetpos(fp,</span><span style="color: #000000;">&</span><span style="color: #000000;">pos);<br>        fsetpos(fp,</span><span style="color: #000000;">&</span><span style="color: #000000;">pos);</span></div> 涔嬪悗錛岃繍琛岀▼搴忥紝鏋滅湡鍙互瑙e喅闂銆?br>    C璇█鐨勬爣鍑咺/O搴撳嚱鏁扮敱浜庝嬌鐢ㄧ紦瀛樼殑鍘熷洜錛屽湪浣跨敤鏃跺彲鑳藉嚭鐜板悇縐嶅悇鏍風殑闂錛屽挨鍏舵槸鍦ㄩ偅縐嶅嵆鏃舵ф瘮杈冨己鐨処/O涓紝浣跨敤鏃惰鎱庨噸銆傚敖閲忎嬌鐢ㄥ叾浠栫殑I/O鍑芥暟浠f浛涔嬨?br><br><br><br><img src ="http://m.shnenglu.com/lmlf001/aggbug/34471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lmlf001/" target="_blank">鑺ヤ箣鑸?/a> 2007-10-17 19:06 <a href="http://m.shnenglu.com/lmlf001/archive/2007/10/17/34471.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>scanf鐨勭儲鎭?/title><link>http://m.shnenglu.com/lmlf001/archive/2007/10/10/33913.html</link><dc:creator>鑺ヤ箣鑸?/dc:creator><author>鑺ヤ箣鑸?/author><pubDate>Wed, 10 Oct 2007 10:23:00 GMT</pubDate><guid>http://m.shnenglu.com/lmlf001/archive/2007/10/10/33913.html</guid><wfw:comment>http://m.shnenglu.com/lmlf001/comments/33913.html</wfw:comment><comments>http://m.shnenglu.com/lmlf001/archive/2007/10/10/33913.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/lmlf001/comments/commentRss/33913.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lmlf001/services/trackbacks/33913.html</trackback:ping><description><![CDATA[    浠婂ぉ榪炵潃2嬈$敤閿檚canf鍑芥暟錛岃繖澶ф涔熸槸鍘嗗彶涓婄N+1嬈¢敊璇簡錛屼竴鐩翠嬌鐢╟in鏉ヨ緭鍏ユ暟鎹紝榪戞潵浣跨敤scanf鐨勬椂鍊欒佸嚭閿欒錛屽洜涓哄畠瑕佸幓鍙傛暟涓轟竴涓湴鍧錛岃岀紪璇戝櫒瀵逛簬鏁存暟鍜屽湴鍧鐨勫鐞嗘槸綾諱技鐨勶紝寰寰涓嶈兘鎸囧嚭閿欒銆傝屽綋瀹冭繍琛屾椂鏄笉鍙戠敓閿欒鐨勶紝浣嗕細寰楀埌涓嶆紜殑緇撴灉銆傘備竴姝ユ鐨勬鏌ワ紝騫朵笉鑳藉彂鐜伴敊璇紝鍙ソ鎵搇og錛屾浛鎹㈡帀鐩稿簲鐨勫潡錛岀劧鍚庨愭鎭㈠鍘熸潵鐨勭紪鐮侊紝鏈鍚庢墠鍙戠幇鏄痵scanf鐨勪嬌鐢ㄩ敊璇傝繖縐嶉敊璇疄闄呬笂鏄湁寰佸厗鐨勶紝鍥犱負紼嬪簭姣忔榪愯鏃跺悗浣跨敤鐨勯兘鏄竴涓殢鏈烘暟鎹紝鑰屼笉鏄綘鎵杈撳叆鐨勬暟鎹備絾緙栬瘧鐨勬椂鍊欏茍涓嶈兘鍙戠幇閿欒銆傚拰寰甯哥殑閿欒涓鏍鳳紝緙栧啓涓涓▼搴忓彲鑳藉彧瑕佸崐灝忔椂鍑犲垎閽燂紝鑰屾煡鎵句竴涓敊璇嵈鑺變簡鎴戝ソ鍑犱釜灝忔椂鐨勬椂闂淬傝繖鏄竴涓笉灝忕殑鏁欒錛屼篃鎻愮ず鎴戝湪緙栬瘧鐨勬椂鍊?Wall閫夐」鐨勫繀瑕佹с備負浜嗕嬌鎴戜互鍚庝笉浼氬繕璁頒嬌鐢ㄨ繖涓夐」錛宎lias涓涓嬪畠鍚э紝鎵撳紑.profile鏂囦歡錛屽姞鍏ヤ竴琛? <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">alias gcc</span><span style="color: #000000;">=</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000; font-weight: bold;">gcc -Wall</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000;"><br>alias g</span><span style="color: #000000;">++=</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000; font-weight: bold;">g++ -Wall</span><span style="color: #000000; font-weight: bold;">'</span></div> 榪欐牱浠ュ悗姣忔浣跨敤gcc/g++鐨勬椂鍊欏畠灝辮嚜鍔ㄥ惎鐢?Wall閫夐」浜?br><img src ="http://m.shnenglu.com/lmlf001/aggbug/33913.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lmlf001/" target="_blank">鑺ヤ箣鑸?/a> 2007-10-10 18:23 <a href="http://m.shnenglu.com/lmlf001/archive/2007/10/10/33913.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>綾繪垚鍛樺嚱鏁扮殑榛樿鍙傛暟琛ㄩ棶棰?/title><link>http://m.shnenglu.com/lmlf001/archive/2007/09/08/31855.html</link><dc:creator>鑺ヤ箣鑸?/dc:creator><author>鑺ヤ箣鑸?/author><pubDate>Sat, 08 Sep 2007 12:58:00 GMT</pubDate><guid>http://m.shnenglu.com/lmlf001/archive/2007/09/08/31855.html</guid><wfw:comment>http://m.shnenglu.com/lmlf001/comments/31855.html</wfw:comment><comments>http://m.shnenglu.com/lmlf001/archive/2007/09/08/31855.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/lmlf001/comments/commentRss/31855.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lmlf001/services/trackbacks/31855.html</trackback:ping><description><![CDATA[    浠婂ぉ鍐欑▼搴忕殑鏃跺欑敤鍒頒簡鍑芥暟鐨勯粯璁ゅ弬鏁拌〃錛岀紪璇戠殑鏃跺欒佹槸鏃犳硶閫氳繃錛屽悗鏉ョ粡榪囧嚑嬈′慨鏀規祴璇曟墠鍙戠幇鏄妸綾葷殑鍑芥暟鍙傛暟琛ㄥ湪鍑芥暟瀹氫箟鏃舵悶閿欎簡銆?br>    綾葷殑鎴愬憳鍑芥暟鐨勫弬鏁拌〃鍦ㄥ0鏄庢椂榛樿鍙傛暟浣嶄簬鍙傛暟琛ㄥ彸閮紝鑻nt fn(int a,int b=0,int c=5);涔嬬被鐨勶紝浣嗗湪瀹冨畾涔夌殑鏃跺欏垯涓嶈兘鍔犻粯璁ゅ弬鏁幫紝鍙兘鍐檌nt fn(int a,int b,int c);<br><br><a title="http://lmlf001.blog.sohu.com/" >http://lmlf001.blog.sohu.com/</a><br><img src ="http://m.shnenglu.com/lmlf001/aggbug/31855.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lmlf001/" target="_blank">鑺ヤ箣鑸?/a> 2007-09-08 20:58 <a href="http://m.shnenglu.com/lmlf001/archive/2007/09/08/31855.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>澶氶噸緇ф壙涓庤櫄鍩虹被http://m.shnenglu.com/lmlf001/archive/2006/04/19/5910.html鑺ヤ箣鑸?/dc:creator>鑺ヤ箣鑸?/author>Wed, 19 Apr 2006 14:19:00 GMThttp://m.shnenglu.com/lmlf001/archive/2006/04/19/5910.htmlhttp://m.shnenglu.com/lmlf001/comments/5910.htmlhttp://m.shnenglu.com/lmlf001/archive/2006/04/19/5910.html#Feedback1http://m.shnenglu.com/lmlf001/comments/commentRss/5910.htmlhttp://m.shnenglu.com/lmlf001/services/trackbacks/5910.html鍘熸枃鍦板潃錛歨ttp://cpp.ysu.edu.cn/jichu/pslyjc.htm

澶氶噸緇ф壙
鍓嶉潰鎴戜滑浠嬬粛鐨勬淳鐢熺被鍙湁涓涓熀綾伙紝縐頒負鍗曞熀媧劇敓鎴栧崟涓緇ф壙銆傚湪瀹為檯榪愮敤涓紝鎴戜滑緇忓父闇瑕佹淳鐢熺被鍚屾椂鍏鋒湁澶氫釜鍩虹被錛岃繖縐嶆柟娉曠О涓哄鍩烘淳鐢熸垨澶氶噸緇ф壙銆?/span>
2.1 澶氶噸緇ф壙鐨勫0鏄庯細
鍦?/span> C++ 涓紝澹版槑鍏鋒湁涓や釜浠ヤ笂鍩虹被鐨勬淳鐢熺被涓庡0鏄庡崟鍩烘淳鐢熺被鐨勫艦寮忕被浼鹼紝鍙渶灝嗚緇ф壙鐨勫涓熀綾葷敤閫楀彿鍒嗗紑鍗沖彲銆?/span>
鍦ㄥ閲嶇戶鎵夸腑錛屽叕鏈夋淳鐢熷拰縐佹湁媧劇敓瀵逛簬鍩虹被鎴愬憳鍦ㄦ淳鐢熺被鐨勫彲璁塊棶鎬т笌鍗曠戶鎵跨殑瑙勫垯鐩稿悓銆?/span>
鍙﹀錛屽鍩虹被鎴愬憳鐨勮闂繀欏繪槸鏃犱簩涔夌殑錛岃嫢涓や釜鍩虹被涓叿鏈夊悓鍚嶇殑鏁版嵁鎴愬憳鎴栨垚鍛樺嚱鏁幫紝浣跨敤鎴愬憳鍚嶉檺瀹氭潵娑堥櫎浜屼箟鎬э紝鑻ユ淳鐢熺被涓柊澧炴垚鍛樻垨鎴愬憳鍑芥暟涓庡熀綾繪垚鍛樻垨鎴愬憳鍑芥暟鍚屽悕錛屽垯媧劇敓綾諱細瑕嗙洊澶栧眰鍚屽悕鎴愬憳錛屼篃欏諱嬌鐢ㄤ綔鐢ㄥ煙鍒嗚鯨絎︺?/span>
2.2 澶氶噸緇ф壙鐨勬瀯閫犲嚱鏁板拰鏋愭瀯鍑芥暟錛?/span>
澶氶噸緇ф壙鐨勬瀯閫犲嚱鏁扮殑瀹氫箟褰㈠紡涓庡崟緇ф壙鏋勯犲嚱鏁扮殑瀹氫箟褰㈠紡綾諱技錛屽彧鏈?/span> n 涓熀綾葷殑鏋勯犲嚱鏁頒箣闂寸敤鈥滐紝鈥濆垎闅斻?/span>
澶氶噸緇ф壙鐨勬瀯閫犲嚱鏁扮殑鎵ц欏哄簭涓庡崟緇ф壙鏋勯犲嚱鏁扮殑鎵ц欏哄簭鐩稿悓錛屼篃鏄伒寰厛鎵ц鍩虹被鐨勬瀯閫犲嚱鏁幫紝鍐嶆墽琛屽璞℃垚鍛樼殑鏋勯犲嚱鏁幫紝鏈鍚庢墽琛屾淳鐢熺被鏋勯犲嚱鏁扮殑鍘熷垯銆傚湪澶氫釜鍩虹被涔嬮棿錛屽垯涓ユ牸鎸夌収媧劇敓綾誨0鏄庢槸浠庡乏鍒板彸鐨勯『搴忔潵鎺掑垪鍏堝悗銆傝屾瀽鏋勫嚱鏁扮殑鎵ц欏哄簭涓庢瀯閫犲嚱鏁扮殑鎵ц欏哄簭鐩稿弽銆?/span>
2.3 铏氬熀綾?/span> :
濡傛灉鏌愪釜媧劇敓綾葷殑閮ㄥ垎鎴栧叏閮ㄧ洿鎺ュ熀綾繪槸浠庡彟涓涓叡鍚岀殑鍩虹被媧劇敓鑰屾潵錛屽湪榪欎簺鍩虹被涓紝浠庝笂涓綰у熀綾葷戶鎵挎潵鐨勬垚鍛樺氨鏈夌浉鍚岀殑鍚嶇О錛屽垯鍦ㄨ繖涓淳鐢熺被涓闂繖涓叡鍚岀殑鍩虹被涓殑鎴愬憳鏃訛紝鍙兘浼氫駭鐢熶簩涔夋э紝姝ゆ椂錛屽彲瀹氫箟铏氬熀綾匯傝繖灝辮姹傚湪鍏剁洿鎺ュ熀綾葷殑瀹氫箟涓紝浣跨敤鍏抽敭瀛?/span> virtual 灝嗛偅涓叡鍚岀殑鍩虹被瀹氫箟涓鴻櫄鍩虹被錛屽叾璇硶褰㈠紡濡備笅錛?/span>
聽聽聽聽聽聽 class 媧劇敓綾誨悕錛?/span> virtual 媧劇敓鏂瑰紡 鍩虹被
聽聽聽 铏氬熀綾葷殑鍒濆鍖栦笌涓鑸殑澶氶噸緇ф壙鐨勫垵濮嬪寲鍦ㄨ娉曚笂鏄竴鏍風殑 錛屼絾鏋勯犲嚱鏁扮殑璋冪敤欏哄簭涓嶅悓錛岃櫄鍩虹被鏋勯犲嚱鏁扮殑璋冪敤欏哄簭鏄繖鏍瘋瀹氱殑錛?/span>
1) 鍦ㄥ悓涓灞傛涓紝鍏堣皟鐢ㄨ櫄鍩虹被鐨勬瀯閫犲嚱鏁幫紝鎺ヤ笅鏉ヤ緷嬈℃槸闈炶櫄鍩虹被鐨勬瀯閫犲嚱鏁幫紝瀵硅薄鎴愬憳鐨勬瀯閫犲嚱鏁幫紝媧劇敓綾葷殑鏋勯犲嚱鏁般?/span>
2) 鑻ュ悓涓灞傛涓寘鍚涓櫄鍩虹被錛岃繖浜涜櫄鍩虹被鐨勬瀯閫犲嚱鏁版寜瀵逛粬浠鏄庣殑鍏堝悗嬈″簭璋冪敤
3) 鑻ヨ櫄鍩虹被鐢遍潪铏氬熀綾繪淳鐢熻屾潵錛屽垯浠嶇劧鍏堣皟鐢ㄥ熀綾繪瀯閫犲嚱鏁幫紝鍐嶈皟鐢ㄦ淳鐢熺被鏋勯犲嚱鏁般?br />



]]>
volatile鍏抽敭瀛?/title><link>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5908.html</link><dc:creator>鑺ヤ箣鑸?/dc:creator><author>鑺ヤ箣鑸?/author><pubDate>Wed, 19 Apr 2006 14:05:00 GMT</pubDate><guid>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5908.html</guid><wfw:comment>http://m.shnenglu.com/lmlf001/comments/5908.html</wfw:comment><comments>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5908.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/lmlf001/comments/commentRss/5908.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lmlf001/services/trackbacks/5908.html</trackback:ping><description><![CDATA[ <p> <font face="瀹嬩綋" size="2">volatile鍏抽敭瀛?/font> </p> <p> <font face="瀹嬩綋" size="2">volatile鏄痗/c++涓竴涓矞涓轟漢鐭ョ殑鍏抽敭瀛?璇ュ叧閿瓧鍛婅瘔緙栬瘧鍣ㄤ笉瑕佹寔鏈夊彉閲忕殑涓存椂鎷瘋礉,瀹冨彲浠ラ傜敤浜庡熀紜綾誨瀷<br />濡傦細int,char,long......涔熼傜敤浜嶤鐨勭粨鏋勫拰C++鐨勭被銆傚綋瀵圭粨鏋勬垨鑰呯被瀵硅薄浣跨敤volatile淇グ鐨勬椂鍊欙紝緇撴瀯鎴栬?br />綾葷殑鎵鏈夋垚鍛橀兘浼氳瑙嗕負volatile.</font> </p> <p> <font face="瀹嬩綋" size="2">浣跨敤volatile騫朵笉浼氬惁瀹氬CRITICAL_SECTION,Mutex,Event絳夊悓姝ュ璞$殑闇瑕?br />渚嬪錛?br />int i;<br />i = i + 3;<br />鏃犺濡備綍錛屾繪槸浼氭湁涓灝忔鏃墮棿錛宨浼氳鏀懼湪涓涓瘎瀛樺櫒涓紝鍥犱負綆楁湳榪愮畻鍙兘鍦ㄥ瘎瀛樺櫒涓繘琛屻備竴鑸潵璇達紝volatitle<br />鍏抽敭瀛楅傜敤浜庤涓庤涔嬮棿錛岃屼笉鏄斁鍦ㄨ鍐呫?/font> </p> <p> <font face="瀹嬩綋" size="2">鎴戜滑鍏堟潵瀹炵幇涓涓畝鍗曠殑鍑芥暟錛屾潵瑙傚療涓涓嬬敱緙栬瘧鍣ㄤ駭鐢熷嚭鏉ョ殑姹囩紪浠g爜涓殑涓嶈凍涔嬪錛屽茍瑙傚療volatile鍏抽敭瀛楀浣曚慨姝?br />榪欎釜涓嶈凍涔嬪銆傚湪榪欎釜鍑芥暟浣撳唴瀛樺湪涓涓猙usy loop(鎵璋揵usy loop涔熷彨鍋歜usy waits,鏄竴縐嶉珮搴︽氮璐笴PU鏃墮棿鐨勫驚鐜柟娉?</font> </p> <p> <font face="瀹嬩綋" size="2">void getKey(char* pch)<br />{<br />聽while (*pch == 0)<br />聽聽;<br />}</font> </p> <p> <font face="瀹嬩綋" size="2">褰撲綘鍦╒C寮鍙戠幆澧冧腑灝嗘渶浼樺寲閫夐」閮藉叧闂箣鍚庯紝緙栬瘧榪欎釜紼嬪簭錛屽皢鑾峰緱浠ヤ笅緇撴灉(姹囩紪浠g爜)<br />;聽聽聽聽聽聽 while (*pch == 0)<br />$L27<br />聽; Load the address stored in pch<br />聽mov eax, DWORD PTR _pch$[ebp]<br />聽; Load the character into the EAX register<br />聽movsx eax, BYTE PTR [eax]<br />聽; Compare the value to zero<br />聽test eax, eax<br />聽; If not zero, exit loop<br />聽jne $L28<br />聽;<br />聽jmp $L27<br />$L28<br />;}</font> </p> <p> <font face="瀹嬩綋" size="2">榪欐娌℃湁浼樺寲鐨勪唬鐮佷笉鏂殑杞藉叆閫傚綋鐨勫湴鍧錛岃澆鍏ュ湴鍧涓殑鍐呭錛屾祴璇曠粨鏋溿傛晥鐜囩浉褰撶殑浣庯紝浣嗘槸緇撴灉闈炲父鍑嗙‘</font> </p> <p> <font face="瀹嬩綋" size="2">鐜板湪鎴戜滑鍐嶆潵鐪嬬湅灝嗙紪璇戝櫒鐨勬墍鏈夋渶浼樺寲閫夐」寮鍏抽兘鎵撳紑浠ュ悗錛岄噸鏂扮紪璇戠▼搴忥紝鐢熸垚鐨勬眹緙栦唬鐮侊紝鍜屼笂闈㈢殑浠g爜<br />姣旇緝涓涓嬫湁浠涔堜笉鍚?br />;{ <br />聽; Load the address stored in pch<br />聽mov eax, DWORD PTR _pch$[esp-4]<br />聽; Load the character into the AL register<br />聽movsx al, BYTE PTR [eax]<br />;聽while (*pch == 0)<br />聽; Compare the value in the AL register to zero<br />聽test al, al<br />聽; If still zero, try again<br />聽je SHORT $L84<br />聽;<br />;}</font> </p> <p> <font face="瀹嬩綋" size="2">浠庝唬鐮佺殑闀垮害灝卞彲浠ョ湅鍑烘潵錛屾瘮娌℃湁浼樺寲鐨勬儏鍐佃鐭殑澶氥傞渶瑕佹敞鎰忕殑鏄紪璇戝櫒鎶奙OV鎸囦護鏀懼埌浜嗗驚鐜箣澶栥傝繖鍦?br />鍗曠嚎紼嬩腑鏄竴涓潪甯稿ソ鐨勪紭鍖栵紝浣嗘槸錛屽湪澶氱嚎紼嬪簲鐢ㄧ▼搴忎腑錛屽鏋滃彟涓涓嚎紼嬫敼鍙樹簡鍙橀噺鐨勫鹼紝鍒欏驚鐜案榪滀笉浼?br />緇撴潫銆傝嫻嬭瘯鐨勫兼案榪滆鏀懼湪瀵勫瓨鍣ㄤ腑錛屾墍浠ヨ孌典唬鐮佸湪澶氱嚎紼嬬殑鎯呭喌涓嬶紝瀛樺湪涓涓法澶х殑BUG銆傝В鍐蟲柟娉曟槸閲嶆柊<br />鍐欎竴嬈etKey鍑芥暟錛屽茍鎶婂弬鏁皃ch澹版槑涓簐olatile,浠g爜濡備笅錛?/font> </p> <p> <font face="瀹嬩綋" size="2">void getKey(volatile char* pch)<br />{<br />聽while (*pch == 0)<br />聽聽;<br />}</font> </p> <p> <font face="瀹嬩綋" size="2">榪欐鐨勪慨鏀瑰浜庨潪鏈浼樺寲鐨勭増鏈病鏈変換浣曞獎鍝嶏紝涓嬮潰璇風湅鏈浼樺寲鍚庣殑緇撴灉錛?/font> </p> <p> <font face="瀹嬩綋" size="2">;{<br />聽; Load the address stored in pch<br />聽mov eax, DWORD PTR _pch$[esp-4]<br />;聽聽聽聽聽聽 while (*pch == 0)<br />$L84:<br />聽; Directly compare the value to zero<br />聽cmp BYTE PTR [eax], 0<br />聽; If still zero, try again<br />聽je SHORT $L84<br />聽;<br />;}</font> </p> <p> <font face="瀹嬩綋" size="2">榪欐鐨勪慨鏀圭粨鏋滄瘮杈冨畬緹庯紝鍦板潃涓嶄細鏀瑰彉錛屾墍浠ュ湴鍧澹版槑琚Щ鍔ㄥ埌寰幆涔嬪銆傚湴鍧鍐呭鏄痸olatile,鎵浠ユ瘡嬈″驚鐜?br />涔嬩腑瀹冧笉鏂殑琚噸鏂版鏌ャ?/font> </p> <p> <font face="瀹嬩綋" size="2">鎶婁竴涓猚onst volatile鍙橀噺浣滀負鍙傛暟浼犻掔粰鍑芥暟鏄悎娉曠殑銆傚姝ょ殑澹版槑鎰忓懗鐫鍑芥暟涓嶈兘鏀瑰彉鍙橀噺鐨勫鹼紝浣嗘槸鍙橀噺鐨?br />鍊煎嵈鍙互琚彟涓涓嚎紼嬪湪浠諱綍鏃墮棿鏀瑰彉鎺夈?/font> </p> <p> <font size="2"> <font face="瀹嬩綋">鍙︼細</font> </font> </p> <p>濡傛灉鍦ㄤ竴涓綰跨▼紼嬪簭涓兂鍦ㄤ袱涓嚱鏁頒腑鍏變韓涓涓眬閮ㄥ彉閲忥紝闇鎶婂彉閲忓0鏄庝負volatile綾誨瀷</p>渚嬪錛?p></p><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽f1(</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">聽x)<br />{聽聽聽聽<br />聽聽聽聽</span><span style="color: rgb(0, 0, 255);">while</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">)x==0</span><span style="color: rgb(0, 0, 0);"></span><span style="color: rgb(0, 0, 0);"></span><span style="color: rgb(0, 0, 0);">);<br />聽聽聽聽cout</span><span style="color: rgb(0, 0, 0);"><<</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">helo</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br />聽聽聽聽_endthread();<br />}<br /><br /></span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽f2(</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">i)<br />{<br />聽聽聽聽</span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">聽j</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">;j</span><span style="color: rgb(0, 0, 0);"><</span><span style="color: rgb(0, 0, 0);">111</span><span style="color: rgb(0, 0, 0);">;j</span><span style="color: rgb(0, 0, 0);">++</span><span style="color: rgb(0, 0, 0);">);<br />聽聽聽聽(</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">((</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">)i))</span><span style="color: rgb(0, 0, 0);">++</span><span style="color: rgb(0, 0, 0);">;<br />聽聽聽聽_endthread();<br />}<br /><br /></span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">聽main()<br />{<br /></span><span style="color: rgb(0, 0, 255);">聽聽聽 int</span><span style="color: rgb(0, 0, 0);">聽i</span><span style="color: rgb(0, 0, 0);">=0</span><span style="color: rgb(0, 0, 0);">;<br />聽聽聽聽_beginthread((</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">)(</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">))f1,</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">&</span><span style="color: rgb(0, 0, 0);">i);聽聽聽聽<br />聽聽聽聽_beginthread((</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">)(</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">))f2,</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">&</span><span style="color: rgb(0, 0, 0);">i);<br />聽聽聽聽</span><span style="color: rgb(0, 0, 255);">while</span><span style="color: rgb(0, 0, 0);">(getch()</span><span style="color: rgb(0, 0, 0);">!=</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">q</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">)</span><span style="color: rgb(0, 0, 0);">;<br />聽聽聽聽</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">;<br />}</span></div><p>涓婁緥涓紝鍑芥暟f1()涓殑寰幆鎺у埗鏉′歡姘歌繙涓虹湡錛屽瓧絎︿覆"helo"寰椾笉鍒版墦鍗般?/p><p>濡傛灉鎶奻1()鐨勫弬鏁扮被鍨嬫敼涓簐olatitle void *x,鍒欐墦鍗板懡浠よ瀹炵幇銆?br /></p><img src ="http://m.shnenglu.com/lmlf001/aggbug/5908.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lmlf001/" target="_blank">鑺ヤ箣鑸?/a> 2006-04-19 22:05 <a href="http://m.shnenglu.com/lmlf001/archive/2006/04/19/5908.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>mutable鍏抽敭瀛楃殑鐢ㄦ硶http://m.shnenglu.com/lmlf001/archive/2006/04/19/5905.html鑺ヤ箣鑸?/dc:creator>鑺ヤ箣鑸?/author>Wed, 19 Apr 2006 13:26:00 GMThttp://m.shnenglu.com/lmlf001/archive/2006/04/19/5905.htmlhttp://m.shnenglu.com/lmlf001/comments/5905.htmlhttp://m.shnenglu.com/lmlf001/archive/2006/04/19/5905.html#Feedback0http://m.shnenglu.com/lmlf001/comments/commentRss/5905.htmlhttp://m.shnenglu.com/lmlf001/services/trackbacks/5905.html鍏抽敭瀛?span class="hilite1">mutable鏄疌++涓竴涓笉甯哥敤鐨勫叧閿瓧,浠栧彧鑳界敤浜庣被鐨勯潪闈欐佸拰闈炲父閲忔暟鎹垚鍛?br />鎴戜滑鐭ラ亾涓涓璞$殑鐘舵佺敱璇ュ璞$殑闈為潤鎬佹暟鎹垚鍛樺喅瀹?鎵浠ラ殢鐫鏁版嵁鎴愬憳鐨勬敼鍙?
瀵瑰儚鐨勭姸鎬佷篃浼氶殢涔嬪彂鐢熷彉鍖?

濡傛灉涓涓被鐨勬垚鍛樺嚱鏁拌澹版槑涓篶onst綾誨瀷,琛ㄧず璇ュ嚱鏁頒笉浼氭敼鍙樺璞$殑鐘舵?涔熷氨鏄?br />璇ュ嚱鏁頒笉浼氫慨鏀圭被鐨勯潪闈欐佹暟鎹垚鍛?浣嗘槸鏈変簺鏃跺欓渶瑕佸湪璇ョ被鍑芥暟涓綾葷殑鏁版嵁鎴愬憳
榪涜璧嬪?榪欎釜鏃跺欏氨闇瑕佺敤鍒?span class="hilite1">mutable鍏抽敭瀛椾簡

mutable鍏抽敭瀛楁彁紺虹紪璇戝櫒璇ュ彉閲忓彲浠ヨ綾葷殑const鍑芥暟淇敼




]]>
explicit鍏抽敭瀛楃敤娉?/title><link>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5904.html</link><dc:creator>鑺ヤ箣鑸?/dc:creator><author>鑺ヤ箣鑸?/author><pubDate>Wed, 19 Apr 2006 13:11:00 GMT</pubDate><guid>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5904.html</guid><wfw:comment>http://m.shnenglu.com/lmlf001/comments/5904.html</wfw:comment><comments>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5904.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/lmlf001/comments/commentRss/5904.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lmlf001/services/trackbacks/5904.html</trackback:ping><description><![CDATA[explicit鍏抽敭瀛楃敤浜庡彇娑堟瀯閫犲嚱鏁扮殑闅愬紡杞崲錛屽鏈夊涓弬鏁扮殑鏋勯犲嚱鏁頒嬌鐢╡xplicit鏄釜璇硶閿欒銆?br /><p><br /></p><p>In C++ it is possible to declare constructors for a class, taking a single parameter, and use those constructors for doing type conversion. For example: <br /></p><pre><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);"></span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">聽A聽{<br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">:<br />聽聽聽聽聽聽聽 A(</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">);<br />};<br /><br /></span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽f(A)聽{}<br /></span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽g()<br />{<br />聽聽聽聽聽聽聽聽 A聽a1聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);">37</span><span style="color: rgb(0, 0, 0);">;<br />聽聽聽聽聽聽聽聽 A聽a2聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽A(</span><span style="color: rgb(0, 0, 0);">47</span><span style="color: rgb(0, 0, 0);">);<br />聽聽聽聽聽聽聽聽 A聽a3(</span><span style="color: rgb(0, 0, 0);">57</span><span style="color: rgb(0, 0, 0);">);<br />聽聽聽聽聽聽聽聽 a1聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);">67</span><span style="color: rgb(0, 0, 0);">;<br />聽聽聽聽聽聽聽聽 f(</span><span style="color: rgb(0, 0, 0);">77</span><span style="color: rgb(0, 0, 0);">);<br />}<br /></span></div><br />A declaration like:<br /> 聽A a1 = 37;<br />says to call the A(int) constructor to create an A object from the integer value. Such a constructor is called a "converting constructor". <br /></pre><p>However, this type of implicit conversion can be confusing, and there is a way of disabling it, using a new keyword "explicit" in the constructor declaration: <br /></p><pre><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);"></span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">聽A聽{<br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">:<br />聽聽聽聽聽聽聽 </span><span style="color: rgb(0, 0, 255);">explicit</span><span style="color: rgb(0, 0, 0);">聽A(</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">);<br />};<br /><br /></span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽f(A)聽{}<br /></span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽g()<br />{<br />聽聽聽聽聽聽聽聽聽 A聽a1聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);">37</span><span style="color: rgb(0, 0, 0);">;聽聽聽聽聽聽</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">聽illegal</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">聽聽聽聽聽聽聽聽聽 A聽a2聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽A(</span><span style="color: rgb(0, 0, 0);">47</span><span style="color: rgb(0, 0, 0);">);聽聽聽</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">聽OK</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">聽聽聽聽聽聽聽聽聽 A聽a3(</span><span style="color: rgb(0, 0, 0);">57</span><span style="color: rgb(0, 0, 0);">);聽聽聽聽聽聽聽</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">聽OK</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">聽聽聽聽聽聽聽聽聽 a1聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);">67</span><span style="color: rgb(0, 0, 0);">;聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">聽illegal</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">聽聽聽聽聽聽聽聽聽 f(</span><span style="color: rgb(0, 0, 0);">77</span><span style="color: rgb(0, 0, 0);">);聽聽聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">聽illegal</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">}<br /><br /></span></div><br /></pre>Using the explicit keyword, a constructor is declared to be<br />"nonconverting", and explicit constructor syntax is required:<br /><br /><pre><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">聽A聽{<br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">:<br />聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 0, 255);">explicit</span><span style="color: rgb(0, 0, 0);">聽A(</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">);<br />聽聽聽聽聽聽聽聽};<br /><br /></span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽f(A)聽{}<br /><br /></span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽g()<br />{<br />聽聽聽聽聽聽聽聽A聽a1聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽A(</span><span style="color: rgb(0, 0, 0);">37</span><span style="color: rgb(0, 0, 0);">);<br />聽聽聽聽聽聽聽聽A聽a2聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽A(</span><span style="color: rgb(0, 0, 0);">47</span><span style="color: rgb(0, 0, 0);">);<br />聽聽聽聽聽聽聽聽A聽a3(</span><span style="color: rgb(0, 0, 0);">57</span><span style="color: rgb(0, 0, 0);">);<br />聽聽聽聽聽聽聽聽a1聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽A(</span><span style="color: rgb(0, 0, 0);">67</span><span style="color: rgb(0, 0, 0);">);<br />聽聽聽聽聽聽聽聽f(A(</span><span style="color: rgb(0, 0, 0);">77</span><span style="color: rgb(0, 0, 0);">));<br />}<br /><br /></span></div><br /></pre><p>Note that an expression such as: <br /></p><pre> A(47)<br /></pre><p>is closely related to function-style casts supported by C++. For example: <br /></p><pre> double d = 12.34;<br /><br /> int i = int(d);<br /></pre><br /><img src ="http://m.shnenglu.com/lmlf001/aggbug/5904.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lmlf001/" target="_blank">鑺ヤ箣鑸?/a> 2006-04-19 21:11 <a href="http://m.shnenglu.com/lmlf001/archive/2006/04/19/5904.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C++椋庢牸鐨勭被鍨嬭漿鎹㈢殑鐢ㄦ硶(ZZ)http://m.shnenglu.com/lmlf001/archive/2006/04/19/5903.html鑺ヤ箣鑸?/dc:creator>鑺ヤ箣鑸?/author>Wed, 19 Apr 2006 12:52:00 GMThttp://m.shnenglu.com/lmlf001/archive/2006/04/19/5903.htmlhttp://m.shnenglu.com/lmlf001/comments/5903.htmlhttp://m.shnenglu.com/lmlf001/archive/2006/04/19/5903.html#Feedback0http://m.shnenglu.com/lmlf001/comments/commentRss/5903.htmlhttp://m.shnenglu.com/lmlf001/services/trackbacks/5903.html C++椋庢牸鐨勭被鍨嬭漿鎹㈢殑鐢ㄦ硶

榪欐槸More Effecitve C++閲岀殑絎簩鏉″綾誨瀷杞崲璁茬殑寰堝ソ錛屼篃寰堝熀紜濂芥噦銆?br />Item M2錛氬敖閲忎嬌鐢–++椋庢牸鐨勭被鍨嬭漿鎹?br />浠旂粏鎯蟲兂鍦頒綅鍗戣幢鐨勭被鍨嬭漿鎹㈠姛鑳斤紙cast錛夛紝鍏跺湪紼嬪簭璁捐涓殑鍦頒綅灝辮薄goto璇彞涓鏍蜂護浜洪剻瑙嗐備絾鏄畠榪樹笉鏄棤娉曚護浜哄繊鍙楋紝鍥犱負褰撳湪鏌愪簺绱ц鐨勫叧澶達紝綾誨瀷杞崲榪樻槸蹇呴渶鐨勶紝榪欐椂瀹冩槸涓涓繀闇鍝併?br />涓嶈繃C椋庢牸鐨勭被鍨嬭漿鎹㈠茍涓嶄唬琛ㄦ墍鏈夌殑綾誨瀷杞崲鍔熻兘銆?br />涓 鏉ュ畠浠繃浜庣矖椴侊紝鑳藉厑璁鎬綘鍦ㄤ換浣曠被鍨嬩箣闂磋繘琛岃漿鎹€備笉榪囧鏋滆榪涜鏇寸簿紜殑綾誨瀷杞崲錛岃繖浼氭槸涓涓紭鐐廣傚湪榪欎簺綾誨瀷杞崲涓瓨鍦ㄧ潃宸ㄥぇ鐨勪笉鍚岋紝渚嬪鎶婁竴涓寚鍚? const瀵硅薄鐨勬寚閽堬紙pointer-to-const-object錛夎漿鎹㈡垚鎸囧悜闈瀋onst瀵硅薄鐨勬寚閽堬紙pointer-to-non-const -object錛?鍗充竴涓粎浠呭幓闄onst鐨勭被鍨嬭漿鎹?錛屾妸涓涓寚鍚戝熀綾葷殑鎸囬拡杞崲鎴愭寚鍚戝瓙綾葷殑鎸囬拡錛堝嵆瀹屽叏鏀瑰彉瀵硅薄綾誨瀷錛夈備紶緇熺殑C椋庢牸鐨勭被鍨嬭漿鎹笉 瀵逛笂榪頒袱縐嶈漿鎹㈣繘琛屽尯鍒嗐傦紙榪欎竴鐐逛篃涓嶄護浜烘儕璁訛紝鍥犱負C椋庢牸鐨勭被鍨嬭漿鎹㈡槸涓篊璇█璁捐鐨勶紝鑰屼笉鏄負C++璇█璁捐鐨勶級銆?br />浜屾潵C椋庢牸鐨勭被鍨嬭漿鎹㈠湪紼? 搴忚鍙ヤ腑闅句互璇嗗埆銆傚湪璇硶涓婏紝綾誨瀷杞崲鐢卞渾鎷彿鍜屾爣璇嗙緇勬垚錛岃岃繖浜涘彲浠ョ敤鍦–錛嬶紜涓殑浠諱綍鍦版柟銆傝繖浣垮緱鍥炵瓟璞¤繖鏍蜂竴涓渶鍩烘湰鐨勬湁鍏崇被鍨嬭漿鎹㈢殑闂鍙樺緱寰? 鍥伴毦錛氣滃湪榪欎釜紼嬪簭涓槸鍚︿嬌鐢ㄤ簡綾誨瀷杞崲錛熲濄傝繖鏄洜涓轟漢宸ラ槄璇誨緢鍙兘蹇界暐浜嗙被鍨嬭漿鎹㈢殑璇彞錛岃屽埄鐢ㄨ薄grep鐨勫伐鍏風▼搴忎篃涓嶈兘浠庤鍙ユ瀯鎴愪笂鍖哄垎鍑哄畠浠? 鏉ャ?br />C++閫氳繃寮曡繘鍥涗釜鏂扮殑綾誨瀷杞崲鎿嶄綔絎﹀厠鏈嶄簡C椋庢牸綾誨瀷杞崲鐨勭己鐐癸紝榪欏洓涓搷浣滅鏄? static_cast, const_cast, dynamic_cast, 鍜宺einterpret_cast銆傚湪澶у鏁版儏鍐典笅錛屽浜庤繖浜涙搷浣滅浣犲彧闇瑕佺煡閬撳師鏉ヤ綘涔犳儻浜庤繖鏍峰啓錛?br />(type) expression
鑰岀幇鍦ㄤ綘鎬誨簲璇ヨ繖鏍峰啓錛?br />static_cast<type>(expression)
渚嬪錛屽亣璁句綘鎯蟲妸涓涓猧nt杞崲鎴恉ouble錛屼互渚胯鍖呭惈int綾誨瀷鍙橀噺鐨勮〃杈懼紡浜х敓鍑烘誕鐐規暟鍊肩殑緇撴灉銆傚鏋滅敤C椋庢牸鐨勭被鍨嬭漿鎹紝浣犺兘榪欐牱鍐欙細
int firstNumber, secondNumber;
...
double result = ((double)firstNumber)/secondNumber錛?br />濡傛灉鐢ㄤ笂榪版柊鐨勭被鍨嬭漿鎹㈡柟娉曪紝浣犲簲璇ヨ繖鏍峰啓錛?br />double result = static_cast<double>(firstNumber)/secondNumber;
榪欐牱鐨勭被鍨嬭漿鎹笉璁烘槸瀵逛漢宸ヨ繕鏄紼嬪簭閮藉緢瀹規槗璇嗗埆銆?br />static_cast 鍦ㄥ姛鑳戒笂鍩烘湰涓婁笌C椋庢牸鐨勭被鍨嬭漿鎹竴鏍峰己澶э紝鍚箟涔熶竴鏍楓傚畠涔熸湁鍔熻兘涓婇檺鍒躲備緥濡傦紝浣犱笉鑳界敤static_cast璞$敤C椋庢牸鐨勭被鍨嬭漿鎹竴鏍鋒妸 struct杞崲鎴恑nt綾誨瀷鎴栬呮妸double綾誨瀷杞崲鎴愭寚閽堢被鍨嬶紝鍙﹀錛宻tatic_cast涓嶈兘浠庤〃杈懼紡涓幓闄onst灞炴э紝鍥犱負鍙︿竴涓柊鐨勭被 鍨嬭漿鎹㈡搷浣滅const_cast鏈夎繖鏍風殑鍔熻兘銆?br />鍏跺畠鏂扮殑C++綾誨瀷杞崲鎿嶄綔絎﹁鐢ㄥ湪闇瑕佹洿澶氶檺鍒剁殑鍦版柟銆俢onst_cast鐢ㄤ簬綾誨瀷杞崲鎺夎〃 杈懼紡鐨刢onst鎴杤olatileness灞炴с傞氳繃浣跨敤const_cast錛屼綘鍚戜漢浠拰緙栬瘧鍣ㄥ己璋冧綘閫氳繃綾誨瀷杞崲鎯沖仛鐨勫彧鏄敼鍙樹竴浜涗笢瑗跨殑 constness鎴栬卾olatileness灞炴с傝繖涓惈涔夎緙栬瘧鍣ㄦ墍綰︽潫銆傚鏋滀綘璇曞浘浣跨敤const_cast鏉ュ畬鎴愪慨鏀筩onstness 鎴栬卾olatileness灞炴т箣澶栫殑浜嬫儏錛屼綘鐨勭被鍨嬭漿鎹㈠皢琚嫆緇濄備笅闈㈡槸涓浜涗緥瀛愶細
class Widget { ... };
class SpecialWidget: public Widget { ... };
void update(SpecialWidget *psw);
SpecialWidget sw; // sw 鏄竴涓潪const 瀵硅薄銆?br />const SpecialWidget& csw = sw; // csw 鏄痵w鐨勪竴涓紩鐢?br />// 瀹冩槸涓涓猚onst 瀵硅薄
update(&csw); // 閿欒!涓嶈兘浼犻掍竴涓猚onst SpecialWidget* 鍙橀噺
// 緇欎竴涓鐞哠pecialWidget*綾誨瀷鍙橀噺鐨勫嚱鏁?br />update(const_cast<SpecialWidget*>(&csw));
// 姝g‘錛宑sw鐨刢onst琚樉紺哄湴杞崲鎺夛紙
// csw鍜宻w涓や釜鍙橀噺鍊煎湪update
//鍑芥暟涓兘琚洿鏂幫級
update((SpecialWidget*)&csw);
// 鍚屼笂錛屼絾鐢ㄤ簡涓涓洿闅捐瘑鍒?br />//鐨凜椋庢牸鐨勭被鍨嬭漿鎹?br />Widget *pw = new SpecialWidget;
update(pw); // 閿欒錛乸w鐨勭被鍨嬫槸Widget*錛屼絾鏄?br />// update鍑芥暟澶勭悊鐨勬槸SpecialWidget*綾誨瀷
update(const_cast<SpecialWidget*>(pw));
// 閿欒錛乧onst_cast浠呰兘琚敤鍦ㄥ獎鍝?br />// constness or volatileness鐨勫湴鏂逛笂銆?
// 涓嶈兘鐢ㄥ湪鍚戠戶鎵垮瓙綾昏繘琛岀被鍨嬭漿鎹€?br />鍒扮洰鍓嶄負姝紝const_cast鏈鏅氱殑鐢ㄩ斿氨鏄漿鎹㈡帀瀵硅薄鐨刢onst灞炴с?br />絎? 浜岀鐗規畩鐨勭被鍨嬭漿鎹㈢鏄痙ynamic_cast錛屽畠琚敤浜庡畨鍏ㄥ湴娌跨潃綾葷殑緇ф壙鍏崇郴鍚戜笅榪涜綾誨瀷杞崲銆傝繖灝辨槸璇達紝浣犺兘鐢╠ynamic_cast鎶婃寚鍚戝熀 綾葷殑鎸囬拡鎴栧紩鐢ㄨ漿鎹㈡垚鎸囧悜鍏舵淳鐢熺被鎴栧叾鍏勫紵綾葷殑鎸囬拡鎴栧紩鐢紝鑰屼笖浣犺兘鐭ラ亾杞崲鏄惁鎴愬姛銆傚け璐ョ殑杞崲灝嗚繑鍥炵┖鎸囬拡錛堝綋瀵規寚閽堣繘琛岀被鍨嬭漿鎹㈡椂錛夋垨鑰呮姏鍑哄紓甯? 錛堝綋瀵瑰紩鐢ㄨ繘琛岀被鍨嬭漿鎹㈡椂錛夛細
Widget *pw;
...
update(dynamic_cast<SpecialWidget*>(pw));
// 姝g‘錛屼紶閫掔粰update鍑芥暟涓涓寚閽?br />// 鏄寚鍚戝彉閲忕被鍨嬩負SpecialWidget鐨刾w鐨勬寚閽?br />// 濡傛灉pw紜疄鎸囧悜涓涓璞?
// 鍚﹀垯浼犻掕繃鍘葷殑灝嗕嬌絀烘寚閽堛?br />void updateViaRef(SpecialWidget& rsw);
updateViaRef(dynamic_cast<SpecialWidget&>(*pw));
//姝g‘銆備紶閫掔粰updateViaRef鍑芥暟
// SpecialWidget pw 鎸囬拡錛屽鏋減w
// 紜疄鎸囧悜浜嗘煇涓璞?br />// 鍚﹀垯灝嗘姏鍑哄紓甯?br />dynamic_casts鍦ㄥ府鍔╀綘嫻忚緇ф壙灞傛涓婃槸鏈夐檺鍒剁殑銆傚畠涓嶈兘琚敤浜庣己涔忚櫄鍑芥暟鐨勭被鍨嬩笂錛堝弬瑙佹潯嬈綧24錛夛紝涔熶笉鑳界敤瀹冩潵杞崲鎺塩onstness錛?br />int firstNumber, secondNumber;
...
double result = dynamic_cast<double>(firstNumber)/secondNumber;
// 閿欒錛佹病鏈夌戶鎵垮叧緋?br />const SpecialWidget sw;
...
update(dynamic_cast<SpecialWidget*>(&sw));
// 閿欒! dynamic_cast涓嶈兘杞崲
// 鎺塩onst銆?br />濡備綘鎯沖湪娌℃湁緇ф壙鍏崇郴鐨勭被鍨嬩腑榪涜杞崲錛屼綘鍙兘鎯沖埌static_cast銆傚鏋滄槸涓轟簡鍘婚櫎const錛屼綘鎬誨緱鐢╟onst_cast銆?br />榪欏洓涓被鍨嬭漿鎹㈢涓殑鏈鍚庝竴涓槸reinterpret_cast銆備嬌鐢ㄨ繖涓搷浣滅鐨勭被鍨嬭漿鎹紝鍏剁殑杞崲緇撴灉鍑犱箮閮芥槸鎵ц鏈熷畾涔夛紙implementation-defined錛夈傚洜姝わ紝浣跨敤reinterpret_casts鐨勪唬鐮佸緢闅劇Щ妞嶃?br />reinterpret_casts鐨勬渶鏅氱殑鐢ㄩ斿氨鏄湪鍑芥暟鎸囬拡綾誨瀷涔嬮棿榪涜杞崲銆備緥濡傦紝鍋囪浣犳湁涓涓嚱鏁版寚閽堟暟緇勶細
typedef void (*FuncPtr)(); // FuncPtr is 涓涓寚鍚戝嚱鏁?br />// 鐨勬寚閽堬紝璇ュ嚱鏁版病鏈夊弬鏁?br />// 榪斿洖鍊肩被鍨嬩負void
FuncPtr funcPtrArray[10]; // funcPtrArray 鏄竴涓兘瀹圭撼
// 10涓狥uncPtrs鎸囬拡鐨勬暟緇?br />璁╂垜浠亣璁句綘甯屾湜錛堝洜涓烘煇浜涜帿鍚嶅叾濡欑殑鍘熷洜錛夋妸涓涓寚鍚戜笅闈㈠嚱鏁扮殑鎸囬拡瀛樺叆funcPtrArray鏁扮粍錛?br />int doSomething();
浣犱笉鑳戒笉緇忚繃綾誨瀷杞崲鑰岀洿鎺ュ幓鍋氾紝鍥犱負doSomething鍑芥暟瀵逛簬funcPtrArray鏁扮粍鏉ヨ鏈変竴涓敊璇殑綾誨瀷銆傚湪FuncPtrArray鏁扮粍閲岀殑鍑芥暟榪斿洖鍊兼槸void綾誨瀷錛岃宒oSomething鍑芥暟榪斿洖鍊兼槸int綾誨瀷銆?br />funcPtrArray[0] = &doSomething; // 閿欒錛佺被鍨嬩笉鍖歸厤
reinterpret_cast鍙互璁╀綘榪嬌緙栬瘧鍣ㄤ互浣犵殑鏂規硶鍘葷湅寰呭畠浠細
funcPtrArray[0] = // this compiles
reinterpret_cast<FuncPtr>(&doSomething);
杞崲鍑芥暟鎸囬拡鐨勪唬鐮佹槸涓嶅彲縐繪鐨勶紙C++涓嶄繚璇佹墍鏈夌殑鍑芥暟鎸囬拡閮借鐢ㄤ竴鏍風殑鏂規硶琛ㄧず錛夛紝鍦ㄤ竴浜涙儏鍐典笅榪欐牱鐨勮漿鎹細浜х敓涓嶆紜殑緇撴灉錛堝弬瑙佹潯嬈綧31錛夛紝鎵浠ヤ綘搴旇閬垮厤杞崲鍑芥暟鎸囬拡綾誨瀷錛岄櫎闈炰綘澶勪簬鐫鑳屾按涓鎴樺拰灝栧垁鏋跺枆鐨勫嵄鎬ユ椂鍒匯備竴鎶婇攱鍒╃殑鍒銆備竴鎶婇潪甯擱攱鍒╃殑鍒銆?br />濡傛灉浣犱嬌鐢ㄧ殑緙栬瘧鍣ㄧ己涔忓鏂扮殑綾誨瀷杞崲鏂瑰紡鐨勬敮鎸侊紝浣犲彲浠ョ敤浼犵粺鐨勭被鍨嬭漿鎹㈡柟娉曚唬鏇縮tatic_cast, const_cast, 浠ュ強reinterpret_cast銆備篃鍙互鐢ㄤ笅闈㈢殑瀹忔浛鎹㈡潵妯℃嫙鏂扮殑綾誨瀷杞崲璇硶錛?br />#define static_cast(TYPE,EXPR) ((TYPE)(EXPR))
#define const_cast(TYPE,EXPR) ((TYPE)(EXPR))
#define reinterpret_cast(TYPE,EXPR) ((TYPE)(EXPR))
浣犲彲浠ヨ薄榪欐牱浣跨敤浣跨敤錛?br />double result = static_cast(double, firstNumber)/secondNumber;
update(const_cast(SpecialWidget*, &sw));
funcPtrArray[0] = reinterpret_cast(FuncPtr, &doSomething);
榪欎簺妯℃嫙涓嶄細璞$湡瀹炵殑鎿嶄綔絎︿竴鏍峰畨鍏紝浣嗘槸褰撲綘鐨勭紪璇戝櫒鍙互鏀寔鏂扮殑鐨勭被鍨嬭漿鎹㈡椂錛屽畠浠彲浠ョ畝鍖栦綘鎶婁唬鐮佸崌綰х殑榪囩▼銆?br />娌? 鏈変竴涓鏄撶殑鏂規硶鏉ユā鎷焏ynamic_cast鐨勬搷浣滐紝浣嗘槸寰堝鍑芥暟搴撴彁渚涗簡鍑芥暟錛屽畨鍏ㄥ湴鍦ㄦ淳鐢熺被涓庡熀綾諱箣闂磋繘琛岀被鍨嬭漿鎹€傚鏋滀綘娌℃湁榪欎簺鍑芥暟鑰屼綘鏈夊繀 欏昏繘琛岃繖鏍風殑綾誨瀷杞崲錛屼綘涔熷彲浠ュ洖鍒癈椋庢牸鐨勭被鍨嬭漿鎹㈡柟娉曚笂錛屼絾鏄繖鏍風殑璇濅綘灝嗕笉鑳借幏鐭ョ被鍨嬭漿鎹㈡槸鍚﹀け璐ャ傚綋鐒訛紝浣犱篃鍙互瀹氫箟涓涓畯鏉ユā鎷? dynamic_cast鐨勫姛鑳斤紝灝辮薄妯℃嫙鍏跺畠鐨勭被鍨嬭漿鎹竴鏍鳳細
#define dynamic_cast(TYPE,EXPR) (TYPE)(EXPR)
璇瘋浣忥紝榪欎釜妯℃嫙騫朵笉鑳藉畬鍏ㄥ疄鐜癲ynamic_cast鐨勫姛鑳斤紝瀹冩病鏈夊姙娉曠煡閬撹漿鎹㈡槸鍚﹀け璐ャ?br />鎴? 鐭ラ亾錛屾槸鐨勶紝鎴戠煡閬擄紝鏂扮殑綾誨瀷杞崲鎿嶄綔絎︿笉鏄緢緹庤鑰屼笖鐢ㄩ敭鐩橀敭鍏ヤ篃寰堥夯鐑︺傚鏋滀綘鍙戠幇瀹冧滑鐪嬩笂鍘誨疄鍦ㄤ護浜鴻鍘岋紝C椋庢牸鐨勭被鍨嬭漿鎹㈣繕鍙互緇х畫浣跨敤騫朵笖鍚? 娉曘傜劧鑰岋紝姝f槸鍥犱負鏂扮殑綾誨瀷杞崲絎︾己涔忕編鎰熸墠鑳戒嬌瀹冨譏琛ヤ簡鍦ㄥ惈涔夌簿紜у拰鍙鯨璁ゆт笂鐨勭己鐐廣傚茍涓旓紝浣跨敤鏂扮被鍨嬭漿鎹㈢鐨勭▼搴忔洿瀹規槗琚В鏋愶紙涓嶈鏄浜哄伐榪樻槸 瀵逛簬宸ュ叿紼嬪簭錛夛紝瀹冧滑鍏佽緙栬瘧鍣ㄦ嫻嬪嚭鍘熸潵涓嶈兘鍙戠幇鐨勯敊璇傝繖浜涢兘鏄斁寮僀椋庢牸綾誨瀷杞崲鏂規硶鐨勫己鏈夊姏鐨勭悊鐢便傝繕鏈夌涓変釜鐞嗙敱錛氫篃璁歌綾誨瀷杞崲絎︿笉緹庤鍜岄敭 鍏ラ夯鐑︽槸涓浠跺ソ浜嬨?/font>



]]>
C++string綾誨父鐢ㄥ嚱鏁?/title><link>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5883.html</link><dc:creator>鑺ヤ箣鑸?/dc:creator><author>鑺ヤ箣鑸?/author><pubDate>Wed, 19 Apr 2006 08:00:00 GMT</pubDate><guid>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5883.html</guid><wfw:comment>http://m.shnenglu.com/lmlf001/comments/5883.html</wfw:comment><comments>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5883.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://m.shnenglu.com/lmlf001/comments/commentRss/5883.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lmlf001/services/trackbacks/5883.html</trackback:ping><description><![CDATA[ <p> <font size="3">string綾葷殑鏋勯犲嚱鏁幫細<br /> string(const char *s);聽聽聽 //鐢╟瀛楃涓瞫鍒濆鍖?br /> string(int n,char c);聽聽聽聽 //鐢╪涓瓧絎鍒濆鍖?br /> 姝ゅ錛宻tring綾昏繕鏀寔榛樿鏋勯犲嚱鏁板拰澶嶅埗鏋勯犲嚱鏁幫紝濡俿tring s1錛泂tring s2="hello"錛涢兘鏄紜殑鍐欐硶銆傚綋鏋勯犵殑string澶暱鑰屾棤娉曡〃杈炬椂浼氭姏鍑簂ength_error寮傚父</font> </p> <p> <font size="3">string綾葷殑瀛楃鎿嶄綔錛?br /> const char &operator[](int n)const;<br /> const char &at(int n)const;<br /> char &operator[](int n);<br /> char &at(int n);<br /> operator[]鍜宎t()鍧囪繑鍥炲綋鍓嶅瓧絎︿覆涓n涓瓧絎︾殑浣嶇疆錛屼絾at鍑芥暟鎻愪緵鑼冨洿媯鏌ワ紝褰撹秺鐣屾椂浼氭姏鍑簅ut_of_range寮傚父錛屼笅鏍囪繍綆楃[]涓嶆彁渚涙鏌ヨ闂?br /> const char *data()const;//榪斿洖涓涓潪null緇堟鐨刢瀛楃鏁扮粍<br /> const char *c_str()const;//榪斿洖涓涓互null緇堟鐨刢瀛楃涓?br /> int copy(char *s, int n, int pos = 0) const;//鎶婂綋鍓嶄覆涓互pos寮濮嬬殑n涓瓧絎︽嫹璐濆埌浠涓鴻搗濮嬩綅緗殑瀛楃鏁扮粍涓紝榪斿洖瀹為檯鎷瘋礉鐨勬暟鐩?/font> </p> <p> <font size="3">string鐨勭壒鎬ф弿榪?<br /> int capacity()const;聽聽聽 //榪斿洖褰撳墠瀹歸噺錛堝嵆string涓笉蹇呭鍔犲唴瀛樺嵆鍙瓨鏀劇殑鍏冪礌涓暟錛?br /> int max_size()const;聽聽聽 //榪斿洖string瀵硅薄涓彲瀛樻斁鐨勬渶澶у瓧絎︿覆鐨勯暱搴?br /> int size()const;聽聽聽聽聽聽聽 //榪斿洖褰撳墠瀛楃涓茬殑澶у皬<br /> int length()const;聽聽聽聽聽聽 //榪斿洖褰撳墠瀛楃涓茬殑闀垮害<br /> bool empty()const;聽聽聽聽聽聽聽 //褰撳墠瀛楃涓叉槸鍚︿負絀?br /> void resize(int len,char c);//鎶婂瓧絎︿覆褰撳墠澶у皬緗負len錛屽茍鐢ㄥ瓧絎濉厖涓嶈凍鐨勯儴鍒?/font> </p> <p> <font size="3">string綾葷殑杈撳叆杈撳嚭鎿嶄綔:<br /> string綾婚噸杞借繍綆楃operator>>鐢ㄤ簬杈撳叆錛屽悓鏍烽噸杞借繍綆楃operator<<鐢ㄤ簬杈撳嚭鎿嶄綔銆?br /> 鍑芥暟getline(istream &in,string &s);鐢ㄤ簬浠庤緭鍏ユ祦in涓鍙栧瓧絎︿覆鍒皊涓紝浠ユ崲琛岀'\n'鍒嗗紑銆?br /> 聽</font> </p> <p> <font size="3">string鐨勮祴鍊鹼細<br /> string &operator=(const string &s);//鎶婂瓧絎︿覆s璧嬬粰褰撳墠瀛楃涓?br /> string &assign(const char *s);//鐢╟綾誨瀷瀛楃涓瞫璧嬪?br /> string &assign(const char *s,int n);//鐢╟瀛楃涓瞫寮濮嬬殑n涓瓧絎﹁祴鍊?br /> string &assign(const string &s);//鎶婂瓧絎︿覆s璧嬬粰褰撳墠瀛楃涓?br /> string &assign(int n,char c);//鐢╪涓瓧絎璧嬪肩粰褰撳墠瀛楃涓?br /> string &assign(const string &s,int start,int n);//鎶婂瓧絎︿覆s涓粠start寮濮嬬殑n涓瓧絎﹁祴緇欏綋鍓嶅瓧絎︿覆<br /> string &assign(const_iterator first,const_itertor last);//鎶奻irst鍜宭ast榪唬鍣ㄤ箣闂寸殑閮ㄥ垎璧嬬粰瀛楃涓?br /> 聽</font> </p> <p> <font size="3">string鐨勮繛鎺ワ細<br /><code> string &operator+=(const string &s);//鎶婂瓧絎︿覆s榪炴帴鍒板綋鍓嶅瓧絎︿覆鐨勭粨灝? </code></font> <font size="3"> <br /> string &append(const char *s);聽聽聽聽聽聽聽聽聽聽聽 //鎶奵綾誨瀷瀛楃涓瞫榪炴帴鍒板綋鍓嶅瓧絎︿覆緇撳熬<br /><code> string &append(const char *s,int n);//鎶奵綾誨瀷瀛楃涓瞫鐨勫墠n涓瓧絎﹁繛鎺ュ埌褰撳墠瀛楃涓茬粨灝?br /> string &append(const string &s);聽聽聽 //鍚宱perator+=()<br /> string &append(const string &s,int pos,int n);//鎶婂瓧絎︿覆s涓粠pos寮濮嬬殑n涓瓧絎﹁繛鎺ュ埌褰撳墠瀛楃涓茬殑緇撳熬<br /> string &append(int n,char c);聽聽聽聽聽聽聽 //鍦ㄥ綋鍓嶅瓧絎︿覆緇撳熬娣誨姞n涓瓧絎<br /> string &append(const_iterator first,const_iterator last);//鎶婅凱浠e櫒first鍜宭ast涔嬮棿鐨勯儴鍒嗚繛鎺ュ埌褰撳墠瀛楃涓茬殑緇撳熬 </code></font> <font size="3"> <br /> 聽</font> </p> <p> <font size="3"> <code> string鐨勬瘮杈冿細<br /> bool operator==(const string &s1,const string &s2)const;//姣旇緝涓や釜瀛楃涓叉槸鍚︾浉絳?br /> 榪愮畻絎?>","<",">=","<=","!="鍧囪閲嶈澆鐢ㄤ簬瀛楃涓茬殑姣旇緝錛?br /> int compare(const string &s) const;//姣旇緝褰撳墠瀛楃涓插拰s鐨勫ぇ灝?br /> int compare(int pos, int n,const string &s)const;//姣旇緝褰撳墠瀛楃涓蹭粠pos寮濮嬬殑n涓瓧絎︾粍鎴愮殑瀛楃涓蹭笌s鐨勫ぇ灝?br /> int compare(int pos, int n,const string &s,int pos2,int n2)const;//姣旇緝褰撳墠瀛楃涓蹭粠pos寮濮嬬殑n涓瓧絎︾粍鎴愮殑瀛楃涓蹭笌s涓璸os2寮濮嬬殑n2涓瓧絎︾粍鎴愮殑瀛楃涓茬殑澶у皬<br /> int compare(const char *s) const;<br /> int compare(int pos, int n,const char *s) const;<br /> int compare(int pos, int n,const char *s, int pos2) const;<br /> compare鍑芥暟鍦?gt;鏃惰繑鍥?錛?lt;鏃惰繑鍥?1錛?=鏃惰繑鍥? </code> </font> <font size="3">聽</font> </p> <p> <font size="3"> <code> string鐨勫瓙涓詫細<br /> string substr(int pos = 0,int n = npos) const;//榪斿洖pos寮濮嬬殑n涓瓧絎︾粍鎴愮殑瀛楃涓? </code> </font> </p> <p> <font size="3"> <br /> string鐨勪氦鎹細<br /> void swap(string &s2);聽聽聽 //浜ゆ崲褰撳墠瀛楃涓蹭笌s2鐨勫?/font> </p> <p> <font size="3">聽</font> </p> <p> <font size="3">string綾葷殑鏌ユ壘鍑芥暟錛?/font> </p> <p> <font size="3"> <code> int find(char c, int pos = 0) const;//浠巔os寮濮嬫煡鎵懼瓧絎鍦ㄥ綋鍓嶅瓧絎︿覆鐨勪綅緗?br /> int find(const char *s, int pos = 0) const;//浠巔os寮濮嬫煡鎵懼瓧絎︿覆s鍦ㄥ綋鍓嶄覆涓殑浣嶇疆<br /> int find(const char *s, int pos, int n) const;//浠巔os寮濮嬫煡鎵懼瓧絎︿覆s涓墠n涓瓧絎﹀湪褰撳墠涓蹭腑鐨勪綅緗?br /> int find(const string &s, int pos = 0) const;//浠巔os寮濮嬫煡鎵懼瓧絎︿覆s鍦ㄥ綋鍓嶄覆涓殑浣嶇疆<br /> //鏌ユ壘鎴愬姛鏃惰繑鍥炴墍鍦ㄤ綅緗紝澶辮觸榪斿洖string::npos鐨勫? </code> </font> </p> <p> <font size="3"> <code> int rfind(char c, int pos = npos) const;//浠巔os寮濮嬩粠鍚庡悜鍓嶆煡鎵懼瓧絎鍦ㄥ綋鍓嶄覆涓殑浣嶇疆<br /> int rfind(const char *s, int pos = npos) const;<br /> int rfind(const char *s, int pos, int n = npos) const;<br /> int rfind(const string &s,int pos = npos) const;<br /> //浠巔os寮濮嬩粠鍚庡悜鍓嶆煡鎵懼瓧絎︿覆s涓墠n涓瓧絎︾粍鎴愮殑瀛楃涓插湪褰撳墠涓蹭腑鐨勪綅緗紝鎴愬姛榪斿洖鎵鍦ㄤ綅緗紝澶辮觸鏃惰繑鍥瀞tring::npos鐨勫? </code> </font> </p> <p> <font size="3"> <code> int find_first_of(char c, int pos = 0) const;//浠巔os寮濮嬫煡鎵懼瓧絎絎竴嬈″嚭鐜扮殑浣嶇疆<br /> int find_first_of(const char *s, int pos = 0) const;<br /> int find_first_of(const char *s, int pos, int n) const;<br /> int find_first_of(const string &s,int pos = 0) const;<br /> //浠巔os寮濮嬫煡鎵懼綋鍓嶄覆涓涓涓湪s鐨勫墠n涓瓧絎︾粍鎴愮殑鏁扮粍閲岀殑瀛楃鐨勪綅緗傛煡鎵懼け璐ヨ繑鍥瀞tring::npos </code> </font> </p> <p> <font size="3"> <code> int find_first_not_of(char c, int pos = 0) const;<br /> int find_first_not_of(const char *s, int pos = 0) const;<br /> int find_first_not_of(const char *s, int pos,int n) const;<br /> int find_first_not_of(const string &s,int pos = 0) const;<br /> //浠庡綋鍓嶄覆涓煡鎵劇涓涓笉鍦ㄤ覆s涓殑瀛楃鍑虹幇鐨勪綅緗紝澶辮觸榪斿洖string::npos </code> </font> </p> <p> <font size="3"> <code> int find_last_of(char c, int pos = npos) const;<br /> int find_last_of(const char *s, int pos = npos) const;<br /> int find_last_of(const char *s, int pos, int n = npos) const;<br /> int find_last_of(const string &s,int pos = npos) const; </code> </font> </p> <p> <font size="3"> <code> int find_last_not_of(char c, int pos = npos) const;<br /> int find_last_not_of(const char *s, int pos = npos) const;<br /> int find_last_not_of(const char *s, int pos,聽 int n) const;<br /> int find_last_not_of(const string &s,int pos = npos) const;<br /> //find_last_of鍜宖ind_last_not_of涓巉ind_first_of鍜宖ind_first_not_of鐩鎬技錛屽彧涓嶈繃鏄粠鍚庡悜鍓嶆煡鎵? </code> </font> </p> <p> <font size="3">聽</font> </p> <p> <font size="3">string綾葷殑鏇挎崲鍑芥暟錛?/font> </p> <p> <font size="3"> <code> string &replace(int p0, int n0,const char *s);//鍒犻櫎浠巔0寮濮嬬殑n0涓瓧絎︼紝鐒跺悗鍦╬0澶勬彃鍏ヤ覆s<br /> string &replace(int p0, int n0,const char *s, int n);//鍒犻櫎p0寮濮嬬殑n0涓瓧絎︼紝鐒跺悗鍦╬0澶勬彃鍏ュ瓧絎︿覆s鐨勫墠n涓瓧絎?br /> string &replace(int p0, int n0,const string &s);//鍒犻櫎浠巔0寮濮嬬殑n0涓瓧絎︼紝鐒跺悗鍦╬0澶勬彃鍏ヤ覆s<br /> string &replace(int p0, int n0,const string &s, int pos, int n);//鍒犻櫎p0寮濮嬬殑n0涓瓧絎︼紝鐒跺悗鍦╬0澶勬彃鍏ヤ覆s涓粠pos寮濮嬬殑n涓瓧絎?br /> string &replace(int p0, int n0,int n, char c);//鍒犻櫎p0寮濮嬬殑n0涓瓧絎︼紝鐒跺悗鍦╬0澶勬彃鍏涓瓧絎<br /> string &replace(iterator first0, iterator last0,const char *s);//鎶奫first0錛宭ast0錛変箣闂寸殑閮ㄥ垎鏇挎崲涓哄瓧絎︿覆s<br /> string &replace(iterator first0, iterator last0,const char *s, int n);//鎶奫first0錛宭ast0錛変箣闂寸殑閮ㄥ垎鏇挎崲涓簊鐨勫墠n涓瓧絎?br /> string &replace(iterator first0, iterator last0,const string &s);//鎶奫first0錛宭ast0錛変箣闂寸殑閮ㄥ垎鏇挎崲涓轟覆s<br /> string &replace(iterator first0, iterator last0,int n, char c);//鎶奫first0錛宭ast0錛変箣闂寸殑閮ㄥ垎鏇挎崲涓簄涓瓧絎<br /> string &replace(iterator first0, iterator last0,const_iterator first, const_iterator last);//鎶奫first0錛宭ast0錛変箣闂寸殑閮ㄥ垎鏇挎崲鎴怺first錛宭ast錛変箣闂寸殑瀛楃涓? </code> </font> </p> <p> <font size="3">string綾葷殑鎻掑叆鍑芥暟錛?/font> </p> <p> <font size="3"> <code> string &insert(int p0, const char *s);<br /> string &insert(int p0, const char *s, int n);<br /> string &insert(int p0,const string &s);<br /> string &insert(int p0,const string &s, int pos, int n);<br /> //鍓?涓嚱鏁板湪p0浣嶇疆鎻掑叆瀛楃涓瞫涓璸os寮濮嬬殑鍓峮涓瓧絎?br /> string &insert(int p0, int n, char c);//姝ゅ嚱鏁板湪p0澶勬彃鍏涓瓧絎<br /> iterator insert(iterator it, char c);//鍦╥t澶勬彃鍏ュ瓧絎錛岃繑鍥炴彃鍏ュ悗榪唬鍣ㄧ殑浣嶇疆<br /> void insert(iterator it, const_iterator first, const_iterator last);//鍦╥t澶勬彃鍏first錛宭ast錛変箣闂寸殑瀛楃<br /> void insert(iterator it, int n, char c);//鍦╥t澶勬彃鍏涓瓧絎<br /> 聽 </code> </font> </p> <p> <font size="3">string綾葷殑鍒犻櫎鍑芥暟</font> </p> <p> <font size="3">iterator erase(iterator first, iterator last);//鍒犻櫎[first錛宭ast錛変箣闂寸殑鎵鏈夊瓧絎︼紝榪斿洖鍒犻櫎鍚庤凱浠e櫒鐨勪綅緗?br /> iterator erase(iterator it);//鍒犻櫎it鎸囧悜鐨勫瓧絎︼紝榪斿洖鍒犻櫎鍚庤凱浠e櫒鐨勪綅緗?br /> string &erase(int pos = 0, int n = npos);//鍒犻櫎pos寮濮嬬殑n涓瓧絎︼紝榪斿洖淇敼鍚庣殑瀛楃涓?/font> </p> <p> <font size="3">聽</font> </p> <p> <font size="3">string綾葷殑榪唬鍣ㄥ鐞嗭細</font> </p> <p> <font size="3">string綾繪彁渚涗簡鍚戝墠鍜屽悜鍚庨亶鍘嗙殑榪唬鍣╥terator錛岃凱浠e櫒鎻愪緵浜嗚闂悇涓瓧絎︾殑璇硶錛岀被浼間簬鎸囬拡鎿嶄綔錛岃凱浠e櫒涓嶆鏌ヨ寖鍥淬?br /> 鐢╯tring::iterator鎴杝tring::const_iterator澹版槑榪唬鍣ㄥ彉閲忥紝const_iterator涓嶅厑璁告敼鍙樿凱浠g殑鍐呭銆傚父鐢ㄨ凱浠e櫒鍑芥暟鏈夛細<br /> const_iterator begin()const;<br /> iterator begin();聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //榪斿洖string鐨勮搗濮嬩綅緗?br /> const_iterator end()const;<br /> iterator end();聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //榪斿洖string鐨勬渶鍚庝竴涓瓧絎﹀悗闈㈢殑浣嶇疆<br /> const_iterator rbegin()const;<br /> iterator rbegin();聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //榪斿洖string鐨勬渶鍚庝竴涓瓧絎︾殑浣嶇疆<br /> const_iterator rend()const;<br /> iterator rend();聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //榪斿洖string絎竴涓瓧絎︿綅緗殑鍓嶉潰<br /> rbegin鍜宺end鐢ㄤ簬浠庡悗鍚戝墠鐨勮凱浠h闂紝閫氳繃璁劇疆榪唬鍣╯tring::reverse_iterator,string::const_reverse_iterator瀹炵幇</font> </p> <p> <font size="3">聽</font> </p> <p> <font size="3">瀛楃涓叉祦澶勭悊錛?/font> </p> <p> <font size="3">閫氳繃瀹氫箟ostringstream鍜宨stringstream鍙橀噺瀹炵幇錛?lt;sstream>澶存枃浠朵腑<br /> 渚嬪錛?br /> 聽聽聽 string input("hello,this is a test");<br /> 聽聽聽 istringstream is(input);<br /> 聽聽聽 string s1,s2,s3,s4;<br /> 聽聽聽 is>>s1>>s2>>s3>>s4;//s1="hello,this",s2="is",s3="a",s4="test"<br /> 聽聽聽 ostringstream os;<br /> 聽聽聽 os<<s1<<s2<<s3<<s4;<br /> 聽聽聽 cout<<os.str();</font> </p> <p> <font size="3">聽</font> </p> <img src ="http://m.shnenglu.com/lmlf001/aggbug/5883.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lmlf001/" target="_blank">鑺ヤ箣鑸?/a> 2006-04-19 16:00 <a href="http://m.shnenglu.com/lmlf001/archive/2006/04/19/5883.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title> 榪囧害浣跨敤C++妯℃澘(overdoing C++ templates)錛圸Z錛?/title><link>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5880.html</link><dc:creator>鑺ヤ箣鑸?/dc:creator><author>鑺ヤ箣鑸?/author><pubDate>Wed, 19 Apr 2006 06:30:00 GMT</pubDate><guid>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5880.html</guid><wfw:comment>http://m.shnenglu.com/lmlf001/comments/5880.html</wfw:comment><comments>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5880.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/lmlf001/comments/commentRss/5880.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lmlf001/services/trackbacks/5880.html</trackback:ping><description><![CDATA[ <h2> 榪囧害浣跨敤C++妯℃澘(overdoing C++ templates) </h2> 浣滆咃細Steve Donovan. <br /> 緲昏瘧: <a target="_top">Winter</a><br /> 鍘熸枃: <a target="_top">Overdoing C++ Templates</a><hr /> 澶х害姣忛殧鍗佸勾錛岄兘浼氬嚭鐜頒竴涓紪紼嬫柊姒傚康錛屽甯冭嚜宸辨槸浠ュ線姒傚康鐨勭戶鎵胯呫傛垜浠篃鍐嶄竴嬈$浉淇★紝浠庝粖寰鍚庤蔣浠舵瘮浠ュ墠鏇村彲闈狅紝鏇村鏄揵uild錛屾垨鑰呮洿鏈夋剰鎬?娌? 鏈変漢鐩鎬俊瀹冧細姣斾互鍓嶆洿灝忔垨鑰呮洿蹇?銆傚湪70騫翠唬錛屾湁緇撴瀯緙栫▼錛涘湪80騫翠唬錛屽紑濮嬩簡闈㈠悜瀵硅薄緙栫▼錛涗粠90騫翠唬涓湡錛屽嚭鐜頒簡鑼冨瀷緙栫▼(generic programming)銆傝寖鍨嬬紪紼嬪緱鍚嶄簬鍏剁敤妯℃澘鑰屼嬌浠g爜閲嶇敤鐨勯珮鏁堟妧鏈?鑼冨瀷綾誨拰鑼冨瀷鍑芥暟)銆? <p>妯℃澘綾誨拰妯℃澘鍑芥暟閮芥槸闈炲父鏈夌敤鐨勫伐鍏楓備緥濡俿qr()鍑芥暟鍙互璁$畻騫蟲柟鏁幫紝浠諱綍瀹氫箟浜嗕箻娉曡繍綆楃殑鏁版嵁綾誨瀷錛堟暟瀛楋紝鐭╅樀錛夐兘閫傜敤銆傛爣鍑嗗鍣ㄧ被(濡? list)閮芥槸妯℃澘錛岃繖鏍峰浜庢瘡涓柊綾誨瀷鏃犻渶閲嶅啓浜嗭紝榪欐鏄嬌鐢ㄦ棫鐗堢殑C++鏃剁湡姝eご鐤肩殑浜嬫儏錛屽洜姝ゆ垜璁や負ISO鐨勬爣鍑嗘槸涓紵澶х殑榪涙銆傜劧鑰岋紝鍦ㄨ繖涓繃紼? 涓湁浜涗笢瑗跨敤寰楄繃澶翠簡銆? </p><p>渚嬪錛氭爣鍑嗗簱涓緱string 鍜宨ostream 閮芥槸浣跨敤"character traits"綾誨瀷浣滀負鍙傛暟銆傝繖鎰忓懗鐫鍚屼竴涓猙asic_string<>綾誨彲浠ョ敤浜嶢SCII瀛楃涓詫紝涔熷彲鐢ㄤ簬Unicode錛岀敋鑷崇敤浜庣伀 鏄熶漢鐨勪笁瀛楄妭瀛楃涓詫紙鍘熷垯铏界劧濡傛錛屼絾璁稿鐗堟湰閮藉彧鏄疄鐜頒簡ASCII瀛楃涓詫紝鐪嬭搗鏉ユ湁鐐規粦紼斤級銆傛爣鍑嗚姹傝繖浜涘父鐢ㄧ被蹇呴』瀹炵幇鎴愭ā鏉垮艦寮忥紝鑰岃繖浜涚被鍑犱箮娑? 鍙婂埌鎵鏈塁++搴旂敤銆? </p><p>浣嗘槸榪欏鎬ц兘鍜岃皟璇曚細甯︽潵璁稿楹葷儲銆備笅闈㈠嚑涓瘯楠岃В閲婁簡榪欎釜闂錛堟湰璇曢獙浣跨敤鐨勭紪璇戝櫒涓篤C++6.0)銆傜紪璇戝櫒鍚屾椂鏀寔鏂伴鏍肩殑 iostream錛堜嬌鐢ㄦā鏉匡級鍜岀粡鍏擱鏍肩殑iostream, 鍥犳鎴戜滑鑳芥瘮杈冧粬浠簩鑰呯殑鐗堟湰瀹炵幇銆傜涓涓祴璇曠▼搴忓綋鐒舵槸浣跨敤"Hello, Word"浜嗭紝鏂伴鏍肩殑緙栬瘧鏃墮棿鏄粡鍏擱鏍肩殑2鍊嶃傚彟涓涓洿姝h鐨勪緥瀛愬ぇ綰︽湁200琛岋紝姣忚杈撳嚭10涓彉閲忕敤浜庤鏁般傝繖涓祴璇曠▼搴忔渶鏄捐憲鐨勭粨璁烘槸緙栬瘧閫? 搴︼細鏂伴鏍肩増鏈姳浜?0縐掔紪璇戝畬鎴愶紝鑰屾棫鐗堟湰鍙嬌鐢ㄤ簡1.5縐掋?0縐掓椂闂村彲騫朵笉灝戯紝鍙互瀹屾垚寰堝浜嬫儏銆傚彟澶栵紝鏂伴鏍肩増鏈殑鍙墽琛屾枃浠剁殑澶у皬涓?15K錛? 鑰屾棫鐗堟湰鍙湁70K銆備綘鐨勬祴璇曟暟鎹彲鑳芥湁浜涘嚭鍏ワ紝浣嗘槸鏁翠綋緇撹鏄竴鏍風殑錛氬綋浣跨敤鏂扮増鏈椂錛屼細鏈夋洿鎱㈢殑緙栬瘧閫熷害鍜屾洿澶х殑鍙墽琛屾枃浠躲傝繖騫朵笉鏄洜涓哄井杞叕鍙哥紪 璇戝櫒鐨勯棶棰橈紝浣跨敤GCC嫻嬭瘯涔熶細寰楀埌鍚屾牱鐨勭粨璁恒? </p><p>褰撶劧錛屽拰榪囧幓涓嶄竴鏍鳳紝鍙墽琛屾枃浠剁殑澶у皬騫朵笉鏄偅涔堥噸瑕侊紝鐜板湪錛屽彲緙栫▼璁懼縐嶇被姝e揩閫熷闀匡紝鍖呮嫭璁稿淇℃伅搴旂敤錛屽閬ユ帶銆佹墜鏈恒佹櫤鑳藉啺綆便佸熀 浜庤摑鐗欐妧鏈殑鍜栧暋鏈虹瓑絳夛紝鍦ㄨ繖浜涘簲鐢ㄤ腑鍐呭瓨榪戝嚑騫撮兘浼氭槸鍗佸垎瀹濊吹鐨勮祫婧愩備嬌鐢ㄦ爣鍑唅ostream 鑰屼駭鐢熺殑棰濆鐨勪簩榪涘埗鏂囦歡錛屾潵婧愪簬鍐呰仈浜嗘暣涓ā鏉跨被鐨勪唬鐮侊紝瑕佹槸娌℃湁code bload宸ュ叿錛屼綘寰堥毦浼樺寲閭d簺閲嶈鐨勬搷浣溿傚鎴戞潵璇達紝緙栬瘧鏃墮棿闂鏇翠弗閲嶄竴浜涳紝鍥犱負榪欐牱鎰忓懗鐫鏇撮暱鐨勭瓑寰咃紝浠庤屽け鍘諱簡寮鍙戜腑闈炲父閲嶈鍘熷垯錛氫簰鍔ㄥ師鍒欍? </p><p> 鐜板湪鎴戜滑鏉ヨ冭檻璋冭瘯鐨勯棶棰樸傛爣鍑嗗簱涓璼tring 綾葷殑妯℃澘瀹炵幇闈炲父鑱槑錛屼絾騫朵笉閫傚悎浜庤皟璇曘備綘浼氶潰涓翠嬌鐢ㄨ秴闀垮悕瀛楃殑緙栬瘧鍣ㄥ拰璋冭瘯鍣ㄧ殑淇℃伅錛? </p><div id="hvzpftn" class="fragment"><pre><font color="brown">class</font> std::basic_string<<font color="brown">char</font>,<font color="brown">struct</font> std::char_traits<<font color="brown">char</font>>,<font color="brown">class</font> std::allocator<<font color="brown">char</font>>></pre></div>鍚? 鏍峰浜庨潪甯告湁鐢ㄧ殑瀹瑰櫒 map < string,string > , 浣犲彲浠ュ幓鎯寵薄鍏跺鏉傛с傝繖浜涘悕瀛楀お闀夸簡錛屼互鑷充簬浜х敓鏁板崄涓唴閮ㄥ悕瀛楄鎴柇鐨勮鍛娿傚浜庡垵瀛﹁呮潵璇達紝std::string 搴旇璁捐寰楀敖鍙兘閫忔槑錛岃屼笉搴旇璁╀粬浠潰涓磋澶氳璦鍐呯疆寰椾竴浜涚壒鎬с傚綋杈撳嚭浜嗙紪璇戦敊璇俊鎭悗錛屽湪鎶鏈笂璁詫紝搴旇鏄彲浠ユ煡鎵懼埌鎵鏈夌殑 typedef 銆傛垜鍦?UnderC 欏圭洰涓氨璇曞浘榪欎箞鍋氥俈erity Stob 寤鴻緙栧啓涓涓悗緗殑澶勭悊鍣ㄦ潵緲昏瘧榪欎簺閿欒淇℃伅錛屾垜鍊掑笇鏈涜繖鏄ス榪欎箞鍋氬彧鏄紑涓帺絎戙傚鏋滀笉浣跨敤榪欎箞澶嶆潅鐨勭被鍨嬶紝榪欎釜闂灝變細瀹規槗澶勭悊鐨勫銆傛垜鍦–++寮鍙? 涓婄殑縐樿瘈灝辨槸錛堟垜棣栨鍧﹁瘹鐨勫叕寮榪欎釜縐樺瘑): 鍦ㄧ◢寰ぇ涓鐐圭殑宸ョ▼涓嬌鐢ㄤ竴涓吋瀹圭殑string 綾繪潵鏇挎崲std::string 鐨勫ご鏂囦歡. 鏈夋椂鎴戜細閲嶆柊build 榪欎簺鏍囧噯鐨勫ご鏂囦歡錛岀敤鏉ユ嫻嬫槸鍚︽垜鐨勫簱榪樿兘姝e父浣跨敤錛屼絾璁╁叾浠栦漢涓哄浣曟彁楂樺叾鎬ц兘鑰屽姫鍔涖? <p>褰撶劧錛屽湪璁稿搴旂敤涓垜浠兘闇瑕佽繖縐峴td::string鎻愪緵鐨勭伒媧繪э紝渚嬪錛岄渶瑕佸悓鏃跺鐞咥SCII 鍜孶nicode瀛楃涓詫紝鎴栬呴渶瑕佸畾鍒惰嚜宸辯殑allocator 絳夌瓑銆備絾榪欏茍涓嶆槸鏅亶闇姹?閫氬父紼嬪簭鍛樿涔堝彧澶勭悊ASCII錛岃涔堝彧澶勭悊Unicode ), 鐪嬭搗鏉ュ浜庣▼搴忓憳鎵挎媴榪欑鑼冨瀷鏈哄埗鏈変簺涓嶅叕騫熾傝繖縐嶆満鍒剁‘瀹炶鏍囧噯搴撶殑璁捐鑰呰寰楀緢鏈夋剰鎬濓紝浣嗗鍔犱簡搴旂敤寮鍙戠▼搴忓憳浣跨敤鐨勫鏉傚害銆傝繖浼間箮棰犲掍簡榪欎釜鍘熷垯錛? 鑹ソ鐨勬爣鍑嗗簱璁捐搴旇闅愯棌鍏跺疄鐜扮殑澶嶆潅搴︼紝鑰岃鐢ㄦ埛鐩存帴浣跨敤銆備絾std::string 瀵瑰叾瀹炵幇鐨勫鏉傚害闅愯棌寰楀茍涓嶅錛屽鑷村湪鐢ㄦ埛浣跨敤榪囩▼涓笉鏂殑閬囧埌璁捐涓殑闂銆傛垜浠笉鑳借姹傛爣鍑嗗簱鐨勭敤鎴烽兘鏄笓瀹躲傛爣鍑嗗潥鎸佽姹傝繖縐嶇壒瀹氱殑瀹炵幇鏂瑰紡錛屽拰鏍? 鍑嗗簱鐨勮璁″垵琛風浉榪濊儗錛屽叾鍒濊》鏄彧鎻愪緵鍏叡鐨勬帴鍙e拰鍖呭惈涓浜涚壒瀹氬姛鑳界殑綾誨簱銆傝嚜鐒訛紝榪欑鑼冨瀷妯℃澘瀵逛簬閭d簺鐪熸鍘昏浠栦滑鐨勪漢鏄竴鐩存湁鏁堢殑銆? </p><p>榪欎簺緇嗚妭鑰冭檻鍚屾牱搴旂敤浜庢爣鍑嗗鍣紝渚嬪list<>瀹瑰櫒錛宭ist 鏈変竴浜涢澶栫殑榛樿妯℃澘鍙傛暟錛岀敤浜庡畾涔変簡榛樿鐨刟llocator銆傚綋鐒惰嚜宸卞畾涔塧llocator 鍗佸垎鏈夌敤錛屼絾緇濆ぇ澶氭暟浜轟笉闇瑕佽嚜宸卞幓瀹炵幇銆傝繖浜涙硾鍖栫殑鐗堟湰瀹屽叏鍙互浣滀負鍗曠嫭鐨勬ā鏉挎彁渚涖傛垜鎵胯榪欐牱鍋氫細璁╂爣鍑嗗簱鐨勮璁″湪鎶鏈笂鍙樺緱娌℃湁浠ュ墠鏈夋剰鎬濓紝浣嗚繖浜? 搴撳湪璁捐涔嬪垵灝卞簲璇ヨ冭檻鍒版渶緇堢敤鎴楓傜鏀逛竴涓婥++鐨勯姝岋細鐢ㄦ埛涓嶅簲璇ヤ負浠栦滑涓嶉渶瑕佺殑涓滆タ涔板崟銆? </p><p> 褰撴垜浠笉闇瑕佹ā鏉跨殑鏃跺欙紝鎴戜滑涓嶅緱涓嶄嬌鐢ㄦā鏉褲傞櫎姝や箣澶栵紝鍦–錛嬶紜涓敤鑼冨瀷緙栫▼榪樹細閬囧埌鍙︿竴涓殑闂銆傚ぇ澶氭暟浜洪兘鍚屾剰錛屾爣鍑嗙殑algorithm 鍗佸垎鏈夌敤銆傚鏋滀綘鏈変竴涓暣鍨嬬殑vector, 浣犲彲浠ョ洿鎺ヤ嬌鐢ㄤ笅闈㈢殑璇彞鏉ユ帓搴忥細 </p><div id="hvzpftn" class="fragment"><pre>sort(v.begin(),v.end());</pre></div> 鍥犱負int鍨嬫暟鎹殑姣旇緝鍑芥暟鏃跺唴鑱旂殑錛岃屼笖榪欑鑼冨瀷綆楁硶姣旀棫鐗堟湰鐨剄sort()鍑芥暟閫熷害榪樺揩錛屼篃鏇村鏄撲嬌鐢紝鐗瑰埆鏄嬌鐢ㄧ敤鎴瘋嚜瀹氫箟綾誨瀷鐨剉ector. copy()鍑芥暟涔熷彲浠ュ湪浠諱綍鏃跺欓珮鏁堢巼鍦版嫹璐濅換浣曟暟鎹? <p> 浣嗘湁浜涘簲鐢ㄧ悊瑙h搗鏉ュ崄鍒嗘櫐娑╋細 </p><div id="hvzpftn" class="fragment"><pre>copy_if(v.begin(),v.end(),ostream_iterator<<font color="brown">int</font>>(cout) bind2nd(greater<<font color="brown">int</font>>(),7));</pre></div> 濡傛灉瑕佸啓寰椾弗鏍間竴鐐癸紝姣忎釜鍚嶅瓧閮藉簲璇ュ姞涓妔td::鍓嶇紑錛岃繖閲屽亣瀹氭墍鏈夊彉閲忛兘鏄嬌鐢ㄥ叏灞鍛藉悕絀洪棿錛屾垨鍗曠嫭浣跨敤鍛戒護鎴栫敤鍏朵粬鏂規硶銆傜敤Stroustrup (C++鐨勫垱濮嬩漢)鐨勪緥瀛愭洿瀹規槗璇存槑闂錛岃繖涓緥瀛愭妸鎵鏈夌殑鏁村瀷鏁拌緭鍑哄埌緇堢錛? <div id="hvzpftn" class="fragment"><pre>vector<<font color="brown">int</font>>::iterator li;<br /><font color="brown">for</font> (li = v.begin(); li != v.end(); ++li)<br /><font color="brown">if</font> (*li > 7) cout << *li;</pre></div>Stroustrup 鍛婅瘔鎴戜滑濡傛灉浣跨敤鏄劇ず鐨勫驚鐜槸"楹葷儲鑰屽張瀹規槗浜х敓閿欒", 浣嗘垜鐪嬩笉鍑轟嬌鐢ㄧ涓涓増鏈湁浠涔堜紭鍔褲傛樉鐒訛紝浜轟滑鑳戒範鎯繖縐嶆柟寮忥紝浜虹被鐨勯傚簲鎬у緢寮猴紝浣滀負涓撲笟浜哄+錛屾垜浠篃涓嶅緱涓嶅涔犺繖涓柊姒傚康銆備絾鏄紝榪欐牱鍋氬茍娌℃湁鍑忓皯 澶氬皯楹葷儲錛岃屼笖鎴戜滑鍙互璇佹槑榪欐牱鍋氬彲璇繪ф洿宸紝鏇翠笉鐏墊椿銆傚悓鏃訛紝瀹冭繕浼氶檺鍒朵綘鐨勮璁°備緥濡傦紝鍋囪鎴戜滑鏈変竴涓猄hape * 鐨勬寚閽坙ist, 鎴戜滑鍙互閫氳繃涓嬮潰鐨勮皟鐢ㄦ柟寮忔潵鐢誨嚭浠栦滑鑷繁鐨勫艦鐘訛細 <div id="hvzpftn" class="fragment"><pre>for_each(ls.begin(),ls.end(),<br />bind2nd(mem_fun(&Shape::draw),canvas));</pre></div> 涔熷彲浠ラ夋嫨榪欑鏂瑰紡錛? <div id="hvzpftn" class="fragment"><pre>ShapeList::iterator li;<br /><font color="brown">for</font> (li = ls.begin(); li != ls.end(); ++li)<br />(*li)->draw(canvas);</pre></div>鐜? 鍦ㄥ亣璁炬垜闇瑕佷慨鏀規垜鐨勮璁★紝鎴戝彧鎯崇敾閭d簺婊¤凍鏌愮瑕佹眰鐨勫浘褰紙鑰屼笖涓嶅笇鏈涙妸榪欎簺闇姹傚寘鍦╯hape綾婚噷闈?, 閭d箞鎴戝彧闇瑕佸湪鏄懼紡鐨勫驚鐜腑澧炲姞涓鏉f鏉′歡璇彞銆傚鏋滆浣跨敤鑼冨瀷姒傚康錛屾垜鍞竴鑳芥兂鍒扮殑鏂瑰紡瀹氫箟涓涓嚱鏁幫紝鐒跺悗浣跨敤for_each()綆楁硶銆備嬌鐢ㄨ璁℃ā 寮忎竴涔︿腑鐨勬湳璇紝絎竴涓緥瀛愭槸涓涓唴閮ㄨ凱浠e櫒(internal iterator)錛岀浜屼釜渚嬪瓙寮忎竴涓閮ㄨ穼鍊掑櫒(external iterator). 浣滆呰涓篊++ 騫朵笉鎿呴暱浣跨敤鍐呴儴榪唬鍣紝鎴戞兂鎴戜滑榪樻槸搴旇鑰冭檻璇█鐨勫眬闄愭с傚叾瀹為棶棰樺湪浜庡湪C++涓繃搴﹀簲鐢ㄨ寖鍨嬫蹇?-浠庤屽鑷翠笉蹇呰鐨勯毦搴︺侰++ 瀹屽叏涓嶆敮鎸佷竴鑸殑鍖垮悕鍑芥暟(anonymous functions)濡侺IST, SmallTalk, Ruby絳夈侰++涓殑鍖垮悕鍑芥暟鎴栬鐪嬭搗鏉ュ拰涓嬮潰涓鏍鳳紝鍙兘鏌愬ぉ鏈変漢浼氬疄鐜板畠錛? <div id="hvzpftn" class="fragment"><pre>for_each(ls.begin(),ls.end(),<br /><font color="brown">void</font> lambda(Shape *p) { p->draw(canvas); }); </pre></div><p>C++ 鏄竴縐嶄笉鍙濊鐨勭紪紼嬭璦錛屽皬鍒版墜鏈猴紝澶у埌璺ㄥ浗闄呯綉緇滐紝閮芥湁鍏跺簲鐢ㄣ傚畠闈炲父鐏墊椿錛岃兘澶熸敮鎸佸縐嶇紪紼嬮鏍鹼紝浣嗚繖縐嶇伒媧誨悓鏍蜂篃鏄叾闂鎵鍦ㄣ傜紪紼嬬殑鑹烘湳鍦ㄤ簬涓? 鐗瑰畾鐨勯棶棰橀夋嫨鍚堥傜紪紼嬮鏍鹼紝灝卞儚鑰佸笀鎬繪彁閱掑啓浣滄枃鏄閫夋嫨濂界殑椋庢牸涓鏍楓傛垜騫朵笉鎯寵瘚姣?C++ 鏍囧噯搴擄紝榪欓噷闈㈠寘鍚簡璁稿浜虹殑杈涘嫟鍔沖姩錛屽茍涓哄ぇ瀹舵彁渚涗簡涓涓叕鍏卞鉤鍙般傛垜瀵逛簬榪欎釜鏍囧噯鐨勬佸害鏄紝瀹冨拰鑼冨瀷緙栫▼鑱旂郴榪囦簬绱у瘑錛屼粠鑰屽彉鎴愪簡鍦ㄨ鏄庝粈涔堥鏍兼槸濂? 鐨勭紪紼嬮鏍?渚嬪錛岀畻娉曚腑鏄庢樉鍊懼悜浜庝笉瑕佷嬌鐢ㄦ樉寮忓驚鐜?, 鍚屾椂瀹冧篃璁╃▼搴忓憳浠笉寰椾笉浠嬪叆涓浜涘疄鐜扮粏鑺?濡俠asic_string<>)錛岃繖鏍峰仛璁╀漢浠洿鍔犺寰桟++ 鏄彧鏄唴鏍稿伐紼嬪笀浠殑緙栫▼璇█銆? </p><img src ="http://m.shnenglu.com/lmlf001/aggbug/5880.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lmlf001/" target="_blank">鑺ヤ箣鑸?/a> 2006-04-19 14:30 <a href="http://m.shnenglu.com/lmlf001/archive/2006/04/19/5880.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C鍙彉闀垮弬鏁拌〃闂http://m.shnenglu.com/lmlf001/archive/2006/04/19/5874.html鑺ヤ箣鑸?/dc:creator>鑺ヤ箣鑸?/author>Wed, 19 Apr 2006 05:28:00 GMThttp://m.shnenglu.com/lmlf001/archive/2006/04/19/5874.htmlhttp://m.shnenglu.com/lmlf001/comments/5874.htmlhttp://m.shnenglu.com/lmlf001/archive/2006/04/19/5874.html#Feedback0http://m.shnenglu.com/lmlf001/comments/commentRss/5874.htmlhttp://m.shnenglu.com/lmlf001/services/trackbacks/5874.html
涓銆佷粈涔堟槸鍙彉鍙傛暟
鎴戜滑鍦–璇█緙栫▼涓湁鏃朵細閬囧埌涓浜涘弬鏁頒釜鏁板彲鍙樼殑鍑芥暟,渚嬪printf()鍑芥暟,鍏跺嚱鏁板師鍨嬩負:
int printf( const char* format, ...);
瀹冮櫎浜嗘湁涓涓弬鏁癴ormat鍥哄畾浠ュ,鍚庨潰璺熺殑鍙傛暟鐨勪釜鏁板拰綾誨瀷鏄彲鍙樼殑錛堢敤涓変釜鐐光溾︹濆仛鍙傛暟鍗犱綅絎︼級,瀹為檯璋冪敤鏃跺彲浠ユ湁浠ヤ笅鐨勫艦寮? printf("%d",i);
printf("%s",s);
printf("the number is %d ,string is:%s", i, s);聽聽聽聽
浠ヤ笂榪欎簺涓滆タ宸蹭負澶у鎵鐔熸倝銆備絾鏄┒绔熷浣曞啓鍙彉鍙傛暟鐨凜鍑芥暟浠ュ強榪欎簺鍙彉鍙傛暟鐨勫嚱鏁扮紪璇戝櫒鏄浣曞疄鐜幫紝榪欎釜闂鍗翠竴鐩村洶鎵頒簡鎴戝ソ涔呫傛湰鏂囧氨榪欎釜緲侀エ顗e垢鎭嶁敤鏁?甯屾湜鑳藉澶у鏈変簺甯姪.
long sum(int i,...)
{
聽聽int *p,j;
聽聽long s = 0;
聽聽p = &i+1;
聽聽for (j=0;j<i;j++)
聽聽聽聽s += p[j];
聽聽聽return s;
}
long Sum = sum(3,1,2,3);
printf("%ld",Sum);
Sum == 6
浜屻佸啓涓涓畝鍗曠殑鍙彉鍙傛暟鐨凜鍑芥暟
鍏堢湅渚嬪瓙紼嬪簭銆傝鍑芥暟鑷沖皯鏈変竴涓暣鏁板弬鏁?鍏跺悗鍗犱綅絎︹︼紝琛ㄧず鍚庨潰鍙傛暟鐨勪釜鏁頒笉瀹? 鍦ㄨ繖涓緥瀛愰噷錛屾墍鏈夌殑杈撳叆鍙傛暟蹇呴』閮芥槸鏁存暟錛屽嚱鏁扮殑鍔熻兘鍙槸鎵撳嵃鎵鏈夊弬鏁扮殑鍊?
鍑芥暟浠g爜濡備笅錛?br /> //紺轟緥浠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噴涓涓嬭繖浜涗唬鐮?br /> 浠庤繖涓嚱鏁扮殑瀹炵幇鍙互鐪嬪埌,鎴戜滑浣跨敤鍙彉鍙傛暟搴旇鏈変互涓嬫楠?
鈶寸敱浜庡湪紼嬪簭涓皢鐢ㄥ埌浠ヤ笅榪欎簺瀹?
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(鍙彉鍙傛暟)鐨勬剰鎬?
榪欎簺瀹忓畾涔夊湪stdarg.h涓?鎵浠ョ敤鍒板彲鍙樺弬鏁扮殑紼嬪簭搴旇鍖呭惈榪欎釜澶存枃浠?
鈶靛嚱鏁伴噷棣栧厛瀹氫箟涓涓獀a_list鍨嬬殑鍙橀噺,榪欓噷鏄痑rg_ptr,榪欎釜鍙?
閲忔槸瀛樺偍鍙傛暟鍦板潃鐨勬寚閽?鍥犱負寰楀埌鍙傛暟鐨勫湴鍧涔嬪悗錛屽啀緇撳悎鍙傛暟鐨勭被鍨嬶紝鎵嶈兘寰楀埌鍙傛暟鐨勫箋?br /> 鈶剁劧鍚庣敤va_start瀹忓垵濮嬪寲鈶典腑瀹氫箟鐨勫彉閲廰rg_ptr,榪欎釜瀹忕殑絎簩涓弬鏁版槸鍙彉鍙傛暟鍒楄〃鐨勫墠涓涓弬鏁?鍗蟲渶鍚庝竴涓浐瀹氬弬鏁?
鈶風劧鍚庝緷嬈$敤va_arg瀹忎嬌arg_ptr榪斿洖鍙彉鍙傛暟鐨勫湴鍧,寰楀埌榪欎釜鍦板潃涔嬪悗錛岀粨鍚堝弬鏁扮殑綾誨瀷錛屽氨鍙互寰楀埌鍙傛暟鐨勫箋?br /> 鈶歌瀹氱粨鏉熸潯浠訛紝榪欓噷鐨勬潯浠跺氨鏄垽鏂弬鏁板兼槸鍚︿負-1銆傛敞鎰忚璋冪殑鍑芥暟鍦ㄨ皟鐢ㄦ椂鏄笉鐭ラ亾鍙彉鍙傛暟鐨勬紜暟鐩殑錛岀▼搴忓憳蹇呴』鑷繁鍦ㄤ唬鐮佷腑鎸囨槑緇撴潫鏉′歡銆傝嚦浜庝負浠涔堝畠涓嶄細鐭ラ亾鍙傛暟鐨勬暟鐩紝璇昏呭湪鐪嬪畬榪欏嚑涓畯鐨勫唴閮ㄥ疄鐜版満鍒跺悗錛岃嚜鐒跺氨浼氭槑鐧姐?br />



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


(浜?鍙彉鍙傛暟鍦ㄧ紪璇戝櫒涓殑澶勭悊
鎴戜滑鐭ラ亾va_start,va_arg,va_end鏄湪stdarg.h涓瀹氫箟鎴愬畯鐨? 鐢變簬1)紜歡騫沖彴鐨勪笉鍚? 2)緙栬瘧鍣ㄧ殑涓嶅悓,鎵浠ュ畾涔夌殑瀹忎篃鏈夋墍涓嶅悓,涓嬮潰鐪嬩竴涓媀C++6.0涓璼tdarg.h閲岀殑浠g爜錛堟枃浠剁殑璺緞涓篤C瀹夎鐩綍涓嬬殑\vc98\ include\stdarg.h錛?br /> typedef char *聽聽va_list;
#define _INTSIZEOF(n) ((sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
#define va_start(ap,v)聽聽( ap = (va_list)&v + _INTSIZEOF(v) )
#define va_arg(ap,t)聽聽聽聽( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
#define va_end(ap)聽聽聽聽聽聽( ap = (va_list)0 )
涓嬮潰鎴戜滑瑙i噴榪欎簺浠g爜鐨勫惈涔夛細
1銆侀鍏堟妸va_list琚畾涔夋垚char*錛岃繖鏄洜涓哄湪鎴戜滑鐩墠鎵鐢ㄧ殑PC鏈轟笂錛屽瓧絎︽寚閽堢被鍨嬪彲浠ョ敤鏉ュ瓨鍌ㄥ唴瀛樺崟鍏冨湴鍧銆傝屽湪鏈夌殑鏈哄櫒涓妚a_list鏄瀹氫箟鎴恦oid*鐨?br /> 2銆佸畾涔塤INTSIZEOF(n)涓昏鏄負浜嗘煇浜涢渶瑕佸唴瀛樼殑瀵歸綈鐨勭郴緇?榪欎釜瀹忕殑鐩殑鏄負浜嗗緱鍒版渶鍚庝竴涓浐瀹氬弬鏁扮殑瀹為檯鍐呭瓨澶?gt;>錛磋皷涓氬箷顚曢瓋鐜拌嫰浣戣児izeof榪愭湐顛垱顚涘Λ顑戠尶緇﹁櫥鑴戣钖硜鎸傝鎸ユ潖璺嬭噥錛兠鎱曨伡鍚硅嬌鏄撶害鏃辨皷榪儜顭?
3銆乿a_start鐨勫畾涔変負 &v+_INTSIZEOF(v) ,榪欓噷&v鏄渶鍚庝竴涓浐瀹氬弬鏁扮殑璧峰鍦板潃錛屽啀鍔犱笂鍏跺疄闄呭崰鐢ㄥぇ灝忓悗錛屽氨寰楀埌浜嗙涓涓彲鍙樺弬鏁扮殑璧峰鍐呭瓨鍦板潃銆傛墍浠ユ垜浠繍琛寁a_start (ap, v)浠ュ悗,ap鎸囧悜絎竴涓彲鍙樺弬鏁板湪鐨勫唴瀛樺湴鍧,鏈変簡榪欎釜鍦板潃錛屼互鍚庣殑浜嬫儏灝辯畝鍗曚簡銆?
榪欓噷瑕佺煡閬撲袱涓簨鎯咃細
聽聽聽聽鈶村湪intel+windows鐨勬満鍣ㄤ笂錛屽嚱鏁版爤鐨勬柟鍚戞槸鍚戜笅鐨勶紝鏍堥《鎸囬拡鐨勫唴瀛樺湴鍧浣庝簬鏍堝簳鎸囬拡錛屾墍浠ュ厛榪涙爤鐨勬暟鎹槸瀛樻斁鍦ㄥ唴瀛樼殑楂樺湴鍧澶勩?br /> 聽聽聽聽(2)鍦╒C絳夌粷澶у鏁癈緙栬瘧鍣ㄤ腑錛岄粯璁ゆ儏鍐典笅錛屽弬鏁拌繘鏍堢殑欏哄簭鏄敱鍙沖悜宸︾殑錛屽洜姝わ紝鍙傛暟榪涙爤浠ュ悗鐨勫唴瀛樻ā鍨嬪涓嬪浘鎵紺猴細鏈鍚庝竴涓浐瀹氬弬鏁扮殑鍦板潃浣嶄簬絎竴涓彲鍙樺弬鏁頒箣涓嬶紝騫朵笖鏄繛緇瓨鍌ㄧ殑銆?br /> |鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺攟
|聽聽鏈鍚庝竴涓彲鍙樺弬鏁奧犅犅犅犅犅犅犅犅犅犅犅犅爘聽聽聽->楂樺唴瀛樺湴鍧澶?br /> |鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺攟
聽聽聽...................
|鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺攟
|聽聽絎琋涓彲鍙樺弬鏁奧犅犅犅犅犅犅犅犅犅犅犅犅犅爘聽聽聽聽聽->va_arg(arg_ptr,int)鍚巃rg_ptr鎵鎸囩殑鍦版柟,
|聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽|聽聽聽聽聽鍗崇N涓彲鍙樺弬鏁扮殑鍦板潃銆?br /> |鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺?|聽聽聽聽聽
聽聽聽鈥︹︹︹︹︹︹︹︹︹?
|鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺攟
|聽聽絎竴涓彲鍙樺弬鏁奧犅犅犅犅犅犅犅犅犅犅犅犅犅犅爘聽聽聽聽聽->va_start(arg_ptr,start)鍚巃rg_ptr鎵鎸囩殑鍦版柟
|聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽|聽聽聽聽聽鍗崇涓涓彲鍙樺弬鏁扮殑鍦板潃
|鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺?|聽聽聽聽聽
|鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?鈥斺攟
|聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽|
|聽聽鏈鍚庝竴涓浐瀹氬弬鏁奧犅犅犅犅犅犅犅犅犅犅犅犅爘聽聽聽聽-> start鐨勮搗濮嬪湴鍧
|鈥斺斺斺斺斺斺斺斺斺斺斺斺斺?鈥攟聽聽聽聽聽聽聽.................
|鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺?|
|聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽|聽聽
|鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺?|聽聽-> 浣庡唴瀛樺湴鍧澶?br />
(4) va_arg():鏈変簡va_start鐨勮壇濂藉熀紜錛屾垜浠彇寰椾簡絎竴涓彲鍙樺弬鏁扮殑鍦板潃錛屽湪va_arg()閲岀殑浠誨姟灝辨槸鏍規嵁鎸囧畾鐨勫弬鏁扮被鍨嬪彇寰楁湰鍙傛暟鐨勫鹼紝騫朵笖鎶婃寚閽堣皟鍒板雞妗撻溇闂悶閽犻箺瀚夊垈璐?
鍥犳錛岀幇鍦ㄥ啀鏉ョ湅va_arg()鐨勫疄鐜板氨搴旇蹇冧腑鏈夋暟浜嗭細
#define va_arg(ap,t)聽聽聽聽( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
榪欎釜瀹忓仛浜嗕袱涓簨鎯咃紝
聽聽聽聽聽聽聽鈶犵敤鐢ㄦ埛杈撳叆鐨勭被鍨嬪悕瀵瑰弬鏁板湴鍧榪涜寮哄埗綾誨瀷杞崲錛屽緱鍒扮敤鎴鋒墍闇瑕佺殑鍊?br /> 聽聽聽鈶¤綆楀嚭鏈弬鏁扮殑瀹為檯澶у皬錛屽皢鎸囬拡璋冨埌鏈弬鏁扮殑緇撳熬錛屼篃灝辨槸涓嬩竴涓弬鏁扮殑棣栧湴鍧錛屼互渚垮悗緇鐞嗐?br /> (5)va_end瀹忕殑瑙i噴錛歺86騫沖彴瀹氫箟涓篴p=(char*)0;浣縜p涓嶅啀 鎸囧悜鍫嗘爤,鑰屾槸璺烴ULL涓鏍?鏈変簺鐩存帴瀹氫箟涓?(void*)0),榪欐牱緙栬瘧鍣ㄤ笉浼氫負va_end浜х敓浠g爜,渚嬪gcc鍦╨inux鐨剎86騫沖彴灝辨槸榪? 鏍峰畾涔夌殑. 鍦ㄨ繖閲屽ぇ瀹惰娉ㄦ剰涓涓棶棰?鐢變簬鍙傛暟鐨勫湴鍧鐢ㄤ簬va_start瀹?鎵浠ュ弬鏁頒笉鑳藉0鏄庝負瀵勫瓨鍣ㄥ彉閲忔垨浣滀負鍑芥暟鎴栨暟緇勭被鍨? 鍏充簬va_start, va_arg, va_end鐨勬弿榪板氨鏄繖浜涗簡,鎴戜滑瑕佹敞鎰忕殑 鏄笉鍚岀殑鎿嶄綔緋葷粺鍜岀‖浠跺鉤鍙扮殑瀹氫箟鏈変簺涓嶅悓,浣嗗師鐞嗗嵈鏄浉浼肩殑.

(涓?鍙彉鍙傛暟鍦ㄧ紪紼嬩腑瑕佹敞鎰忕殑闂
鍥犱負va_start, va_arg, va_end絳夊畾涔夋垚瀹?鎵浠ュ畠鏄懼緱寰堟剼锠? 鍙彉鍙傛暟鐨勭被鍨嬪拰涓暟瀹屽叏鍦ㄨ鍑芥暟涓敱紼嬪簭浠g爜鎺у埗,瀹冨茍涓嶈兘鏅鴻兘 鍦拌瘑鍒笉鍚屽弬鏁扮殑涓暟鍜岀被鍨? 鏈変漢浼氶棶:閭d箞printf涓笉鏄疄鐜頒簡鏅鴻兘璇嗗埆鍙傛暟鍚?閭f槸鍥犱負鍑芥暟 printf鏄粠鍥哄畾鍙傛暟format瀛楃涓叉潵鍒嗘瀽鍑哄弬鏁扮殑綾誨瀷,鍐嶈皟鐢╲a_arg 鐨勬潵鑾峰彇鍙彉鍙傛暟鐨?涔熷氨鏄,浣犳兂瀹炵幇鏅鴻兘璇嗗埆鍙彉鍙傛暟鐨勮瘽鏄閫氳繃鍦ㄨ嚜宸辯殑紼嬪簭閲屼綔鍒ゆ柇鏉ュ疄鐜扮殑. 渚嬪錛屽湪C鐨勭粡鍏告暀鏉愩妕he c programming language銆嬬殑7.3鑺備腑灝辯粰鍑轟簡涓涓猵rintf鐨勫彲鑳藉疄鐜版柟寮忥紝鐢變簬綃囧箙鍘熷洜榪欓噷涓嶅啀鍙欒堪銆?br /> 錛堝洓錛夊皬緇?
1銆佹爣鍑咰搴撶殑涓殑涓変釜瀹忕殑浣滅敤鍙槸鐢ㄦ潵紜畾鍙彉鍙傛暟鍒楄〃涓瘡涓弬鏁扮殑鍐呭瓨鍦板潃錛岀紪璇戝櫒鏄笉鐭ラ亾鍙傛暟鐨勫疄闄呮暟鐩殑銆?br /> 2銆佸湪瀹為檯搴旂敤鐨勪唬鐮佷腑錛岀▼搴忓憳蹇呴』鑷繁鑰冭檻紜畾鍙傛暟鏁扮洰鐨勫姙娉曪紝濡?br /> 鈶村湪鍥哄畾鍙傛暟涓鏍囧織鈥斺?printf鍑芥暟灝辨槸鐢ㄨ繖涓姙娉曘傚悗闈篃鏈変緥瀛愩?br /> 鈶靛湪棰勫厛璁懼畾涓涓壒孌婄殑緇撴潫鏍囪錛屽氨鏄澶氳緭鍏ヤ竴涓彲鍙樺弬鏁幫紝璋冪敤鏃惰灝嗘渶鍚庝竴涓彲鍙樺弬鏁扮殑鍊艱緗垚榪欎釜鐗規畩鐨勫鹼紝鍦ㄥ嚱鏁頒綋涓牴鎹繖涓煎垽鏂槸鍚﹁揪鍒板弬鏁扮殑緇撳熬銆傛湰鏂囧墠闈㈢殑浠g爜灝辨槸閲囩敤榪欎釜鍔炴硶.
鏃犺閲囩敤鍝鍔炴硶錛岀▼搴忓憳閮藉簲璇ュ湪鏂囨。涓憡璇夎皟鐢ㄨ呰嚜宸辯殑綰﹀畾銆?br /> 3銆佸疄鐜板彲鍙樺弬鏁扮殑瑕佺偣灝辨槸鎯沖姙娉曞彇寰楁瘡涓弬鏁扮殑鍦板潃錛屽彇寰楀湴鍧鐨勫姙娉曠敱浠ヤ笅鍑犱釜鍥犵礌鍐沖畾錛?br /> 鈶犲嚱鏁版爤鐨勭敓闀挎柟鍚?br /> 鈶″弬鏁扮殑鍏ユ爤欏哄簭
鈶PU鐨勫榻愭柟寮?br /> 鈶e唴瀛樺湴鍧鐨勮〃杈炬柟寮?br /> 緇撳悎婧愪唬鐮侊紝鎴戜滑鍙互鐪嬪嚭va_list鐨勫疄鐜版槸鐢扁懀鍐沖畾鐨勶紝_INTSIZEOF(n)鐨勫紩鍏ュ垯鏄敱鈶㈠喅瀹氱殑錛屼粬鍜屸憼鈶″張涓璧峰喅瀹氫簡va_start鐨勫疄鐜幫紝鏈鍚巚a_end鐨勫瓨鍦ㄥ垯鏄壇濂界紪紼嬮鏍肩殑浣撶幇錛屽皢涓嶅啀浣跨敤鐨勬寚閽堣涓篘ULL,榪欐牱鍙互闃叉浠ュ悗鐨勮鎿嶄綔銆?br /> 4銆佸彇寰楀湴鍧鍚庯紝鍐嶇粨鍚堝弬鏁扮殑綾誨瀷錛岀▼搴忓憳灝卞彲浠ユ紜殑澶勭悊鍙傛暟浜嗐傜悊瑙d簡浠ヤ笂瑕佺偣錛岀浉淇$◢鏈夌粡楠岀殑璇昏呭氨鍙互鍐欏嚭閫傚悎浜庤嚜宸辨満鍣ㄧ殑瀹炵幇鏉ャ備笅闈㈣嚰涓旀闅堿憖?
錛堜簲錛夋墿灞曗斺旇嚜宸卞疄鐜扮畝鍗曠殑鍙彉鍙傛暟鐨勫嚱鏁般?br /> 涓嬮潰鏄竴涓畝鍗曠殑printf鍑芥暟鐨勫疄鐜幫紝鍙傝冧簡<The C Programming Language>涓殑156欏電殑渚嬪瓙錛岃鑰呭彲浠ョ粨鍚堜功涓婄殑浠g爜涓庢湰鏂囧弬鐓с?br /> #include "stdio.h"
#include "stdlib.h"
void myprintf(char* fmt, ...)聽聽聽聽聽聽聽聽//涓涓畝鍗曠殑綾諱技浜巔rintf鐨勫疄鐜幫紝//鍙傛暟蹇呴』閮芥槸int 綾誨瀷
{
聽聽聽聽char* pArg=NULL;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//絳変環浜庡師鏉ョ殑va_list
聽聽聽聽char c;
聽聽聽聽
聽聽聽聽pArg = (char*) &fmt;聽聽聽聽聽聽聽聽聽聽//娉ㄦ剰涓嶈鍐欐垚p = fmt !!鍥犱負榪欓噷瑕佸//鍙傛暟鍙栧潃錛岃屼笉鏄彇鍊?br /> 聽聽聽聽pArg += sizeof(fmt);聽聽聽聽聽聽聽聽聽//絳変環浜庡師鏉ョ殑va_start聽聽聽聽聽聽聽聽聽聽

聽聽聽聽do
聽聽聽聽{
聽聽聽聽聽聽聽聽c =*fmt;
聽聽聽聽聽聽聽聽if (c != '%')
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽putchar(c);聽聽聽聽聽聽聽聽聽聽聽聽//鐓у師鏍瘋緭鍑哄瓧絎?br /> 聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽else
{
//鎸夋牸寮忓瓧絎﹁緭鍑烘暟鎹?br /> 聽聽聽聽聽聽聽聽聽聽聽聽switch(*++fmt)
{
聽聽聽聽聽聽聽聽聽聽聽聽case 'd':
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%d",*((int*)pArg));聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽break;
聽聽聽聽聽聽聽聽聽聽聽聽case 'x':
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%#x",*((int*)pArg));
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽break;
聽聽聽聽聽聽聽聽聽聽聽聽default:
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽break;
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽pArg += sizeof(int);聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//絳変環浜庡師鏉ョ殑va_arg
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽++fmt;
聽聽聽聽}while (*fmt != '\0');
聽聽聽聽pArg = NULL;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//絳変環浜巚a_end
聽聽聽聽return;
}
int main(int argc, char* argv[])
{
聽聽聽聽int i = 1234;
聽聽聽聽int j = 5678;
聽聽聽聽
聽聽聽聽myprintf("the first test:i=%d",i,j);
聽聽聽聽myprintf("the secend test:i=%d; %x;j=%d;",i,0xabcd,j);
聽聽聽聽system("pause");
聽聽聽聽return 0;
}
鍦╥ntel+win2k+vc6鐨勬満鍣ㄦ墽琛岀粨鏋滃涓嬶細
the first test:i=1234
the secend test:i=1234; 0xabcd;j=5678;
#include <stdarg.h>//涓嶅畾鏁扮洰鍙傛暟闇瑕佺殑瀹?br /> int max(int n,int num,...)
{
va_list x;//璇存槑鍙橀噺x
va_start(x,num);//x琚垵濮嬪寲涓烘寚鍚憂um鍚庣殑絎竴涓弬鏁?br /> int m=num;
for(int i=1;i<n;i++)
{
//灝嗗彉閲弜鎵鎸囧悜鐨刬nt綾誨瀷鐨勫艱祴緇檡,鍚屾椂浣縳鎸囧悜涓嬩竴涓弬鏁?br /> int y=va_arg(x,int);
if(y>m)m=y;
}
va_end(x);//娓呴櫎鍙橀噺x
return m;
}
main()
{
聽聽聽聽printf("%d,%d",max(3,5,56),max(6,0,4,32,45,533));
}



]]>
C棰勫鐞嗘寚浠?/title><link>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5873.html</link><dc:creator>鑺ヤ箣鑸?/dc:creator><author>鑺ヤ箣鑸?/author><pubDate>Wed, 19 Apr 2006 05:14:00 GMT</pubDate><guid>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5873.html</guid><wfw:comment>http://m.shnenglu.com/lmlf001/comments/5873.html</wfw:comment><comments>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5873.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/lmlf001/comments/commentRss/5873.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lmlf001/services/trackbacks/5873.html</trackback:ping><description><![CDATA[ <span id="hvzpftn" class="top11">鍘熸枃鍦板潃錛歨ttp://www.51cto.com/html/2005/0927/3844.htm<br /><br />涓銆侀澶勭悊鐨勭敱鏉ワ細<br />鍦–++鐨勫巻鍙插彂灞曚腑錛屾湁寰堝鐨勮璦鐗瑰緛錛堢壒鍒槸璇█鐨勬櫐娑╀箣澶勶級鏉ヨ嚜浜嶤璇█錛岄澶勭悊灝辨槸鍏朵腑鐨勪竴涓侰++浠嶤璇█閭i噷鎶奀璇█棰勫鐞嗗櫒緇ф壙榪囨潵錛圕璇█棰勫鐞嗗櫒錛岃Bjarne鍗氬+綆縐頒負Cpp錛屼笉鐭ラ亾鏄笉鏄疌 Program Preprocessor鐨勭畝縐幫級銆?br /><br />浜屻佸父瑙佺殑棰勫鐞嗗姛鑳斤細<br />棰勫鐞嗗櫒鐨勪富瑕佷綔鐢ㄥ氨鏄妸閫氳繃棰勫鐞嗙殑鍐呭緩鍔熻兘瀵逛竴涓祫婧愯繘琛岀瓑浠鋒浛鎹紝鏈甯歌鐨勯澶勭悊鏈夛細鏂囦歡鍖呭惈錛屾潯浠剁紪璇戙佸竷灞鎺у埗鍜屽畯鏇挎崲4縐嶃?br />鏂囦歡鍖呭惈錛?include 鏄竴縐嶆渶涓哄父瑙佺殑棰勫鐞嗭紝涓昏鏄仛涓烘枃浠剁殑寮曠敤緇勫悎婧愮▼搴忔鏂囥?br />鏉′歡緙栬瘧錛?if,#ifndef,#ifdef,#endif,#undef絳変篃鏄瘮杈冨父瑙佺殑棰勫鐞嗭紝涓昏鏄繘琛岀紪璇戞椂榪涜鏈夐夋嫨鐨勬寫閫夛紝娉ㄩ噴鎺変竴浜涙寚瀹氱殑浠g爜錛屼互杈懼埌鐗堟湰鎺у埗銆侀槻姝㈠鏂囦歡閲嶅鍖呭惈鐨勫姛鑳姐?br />甯冨眬鎺у埗錛?progma錛岃繖涔熸槸鎴戜滑搴旂敤棰勫鐞嗙殑涓涓噸瑕佹柟闈紝涓昏鍔熻兘鏄負緙栬瘧紼嬪簭鎻愪緵闈炲父瑙勭殑鎺у埗嫻佷俊鎭?br />瀹忔浛鎹細 #define錛岃繖鏄渶甯歌鐨勭敤娉曪紝瀹冨彲浠ュ畾涔夌鍙峰父閲忋佸嚱鏁板姛鑳姐侀噸鏂板懡鍚嶃佸瓧絎︿覆鐨勬嫾鎺ョ瓑鍚勭鍔熻兘銆?br /><br />涓夈侀澶勭悊鎸囦護錛?br />棰勫鐞嗘寚浠ょ殑鏍煎紡濡備笅錛?br /># directive tokens<br />#絎﹀彿搴旇鏄繖涓琛岀殑絎竴涓潪絀哄瓧絎︼紝涓鑸垜浠妸瀹冩斁鍦ㄨ搗濮嬩綅緗傚鏋滄寚浠や竴琛屾斁涓嶄笅錛屽彲浠ラ氳繃\榪涜鎺у埗錛屼緥濡傦細<br />#define Error if(error) exit(1) 絳変環浜?br />#define Error \<br />if(error) exit(1)<br />涓嶈繃鎴戜滑涓轟簡緹庡寲璧瘋錛屼竴鑸兘涓嶆庝箞榪欎箞鐢紝鏇村父瑙佺殑鏂瑰紡濡備笅錛?br /># ifdef __BORLANDC__<br />if_true<(is_convertible<Value,named_template_param_base>::value)>::<br />template then<make_named_arg, make_key_value>::type Make;<br /># else<br />enum { is_named = is_named_parameter<Value>::value };<br />typedef typename if_true<(is_named)>::template<br />then<make_named_arg, make_key_value>::type Make;<br /># endif<br />涓嬮潰鎴戜滑鐪嬩竴涓嬪父瑙佺殑棰勫鐞嗘寚浠わ細<br />#define 瀹忓畾涔?br />#undef 鏈畾涔夊畯<br />#include 鏂囨湰鍖呭惈<br />#ifdef 濡傛灉瀹忚瀹氫箟灝辮繘琛岀紪璇?br />#ifndef 濡傛灉瀹忔湭琚畾涔夊氨榪涜緙栬瘧<br />#endif 緇撴潫緙栬瘧鍧楃殑鎺у埗<br />#if 琛ㄨ揪寮忛潪闆跺氨瀵逛唬鐮佽繘琛岀紪璇?br />#else 浣滀負鍏朵粬棰勫鐞嗙殑鍓╀綑閫夐」榪涜緙栬瘧<br />#elif 榪欐槸涓縐?else鍜?if鐨勭粍鍚堥夐」 <img style="vertical-align: middle;" alt="tongue.gif" src="http://www.s8s8.net/forums/html/emoticons/tongue.gif" border="0" /><br />#line 鏀瑰彉褰撳墠鐨勮鏁板拰鏂囦歡鍚嶇О<br />#error 杈撳嚭涓涓敊璇俊鎭?br />#pragma 涓虹紪璇戠▼搴忔彁渚涢潪甯歌鐨勬帶鍒舵祦淇℃伅<br />涓嬮潰鎴戜滑瀵硅繖浜涢澶勭悊榪涜涓涓鐨勮鏄庯紝鑰冭檻鍒板畯鐨勯噸瑕佹у拰綣佺悙鎬э紝鎴戜滑鎶婂畠鏀懼埌鏈鍚庤銆?br /><br />鍥涖佹枃浠跺寘鍚寚浠わ細<br />榪欑棰勫鐞嗕嬌鐢ㄦ柟寮忔槸鏈涓哄父瑙佺殑錛屽鉤鏃舵垜浠紪鍐欑▼搴忛兘浼氱敤鍒幫紝鏈甯歌鐨勭敤娉曟槸錛?br />#include <iostream> 聽聽聽 聽聽聽 //鏍囧噯搴撳ご鏂囦歡<br />#include <iostream.h> 聽聽聽 聽聽聽 //鏃у紡鐨勬爣鍑嗗簱澶存枃浠?br />#include "IO.h" 聽聽聽 聽聽聽 聽聽聽 //鐢ㄦ埛鑷畾涔夌殑澶存枃浠?br />#include "../file.h" 聽聽聽 聽聽聽 //UNIX涓嬬殑鐖剁洰褰曚笅鐨勫ご鏂囦歡<br />#include "/usr/local/file.h" //UNIX涓嬬殑瀹屾暣璺緞<br />#include "..\file.h" 聽聽聽 聽聽聽 //Dos涓嬬殑鐖剁洰褰曚笅鐨勫ご鏂囦歡<br />#include "\usr\local\file.h" //Dos涓嬬殑瀹屾暣璺緞<br />榪欓噷闈㈡湁2涓湴鏂硅娉ㄦ剰錛?br />1銆佹垜浠敤<iostream>榪樻槸<iostream.h>?<br />鎴戜滑涓誨紶浣跨敤<iostream>錛岃屼笉鏄?lt;iostream.h>,涓轟粈涔堝憿錛熸垜鎯充綘鍙兘榪樿寰楁垜鏇劇粡緇欏嚭榪囧嚑鐐圭悊鐢憋紝榪欓噷鎴戝ぇ鑷寸殑璇翠竴涓嬶細棣栧厛錛?h鏍煎紡鐨勫ご鏂囦歡鏃╁湪98騫?鏈堜喚灝辮鏍囧噯濮斿憳浼氭姏寮冧簡錛屾垜浠簲璇ョ揣璺熸爣鍑嗭紝浠ラ傚悎鏃朵唬鐨勫彂灞曘傚叾嬈★紝iostream.h鍙敮鎸佺獎瀛楃闆嗭紝iostream鍒欐敮鎸佺獎/瀹藉瓧絎﹂泦銆?br />榪樻湁錛屾爣鍑嗗iostream浣滀簡寰堝鐨勬敼鍔紝鎺ュ彛鍜屽疄鐜伴兘鏈変簡鍙樺寲銆傛渶鍚庯紝iostream緇勪歡鍏ㄩ儴鏀懼叆namespace std涓紝闃叉浜嗗悕瀛楁薄鏌撱?br />2銆?lt;io.h>鍜?io.h"鐨勫尯鍒紵<br />鍏跺疄浠栦滑鍞竴鐨勫尯鍒氨鏄悳绱㈣礬寰勪笉鍚岋細<br />瀵逛簬#include <io.h> 錛岀紪璇戝櫒浠庢爣鍑嗗簱璺緞寮濮嬫悳绱?br />瀵逛簬#include "io.h" 錛岀紪璇戝櫒浠庣敤鎴風殑宸ヤ綔璺緞寮濮嬫悳绱?br />浜斻佺紪璇戞帶鍒舵寚浠わ細<br />榪欎簺鎸囦護鐨勪富瑕佺洰鐨勬槸榪涜緙栬瘧鏃惰繘琛屾湁閫夋嫨鐨勬寫閫夛紝娉ㄩ噴鎺変竴浜涙寚瀹氱殑浠g爜錛屼互杈懼埌鐗堟湰鎺у埗銆侀槻姝㈠鏂囦歡閲嶅鍖呭惈鐨勫姛鑳姐?br />浣跨敤鏍煎紡錛屽涓嬶細<br />1銆?br />#ifdef identifier<br />your code<br />#endif<br />濡傛灉identifier涓轟竴涓畾涔変簡鐨勭鍙鳳紝your code灝變細琚紪璇戯紝鍚﹀垯鍓旈櫎<br />2銆?br />#ifndef identifier<br />your code<br />#endif<br />濡傛灉identifier涓轟竴涓湭瀹氫箟鐨勭鍙鳳紝your code灝變細琚紪璇戯紝鍚﹀垯鍓旈櫎<br />3銆?br />#if expression<br />your code<br />#endif<br />濡傛灉expression闈為浂錛寉our code灝變細琚紪璇戯紝鍚﹀垯鍓旈櫎<br />4銆?br />#ifdef identifier<br />your code1<br />#else<br />your code2<br />#endif<br />濡傛灉identifier涓轟竴涓畾涔変簡鐨勭鍙鳳紝your code1灝變細琚紪璇戯紝鍚﹀垯yourcode2灝變細琚紪璇?br />5銆?br />#if expressin1<br />your code1<br />#elif expression2 //鍛靛懙錛宔lif<br />your code2<br />#else<br />your code3<br />#enif<br />濡傛灉epression1闈為浂錛屽氨緙栬瘧your code1錛屽惁鍒欙紝濡傛灉expression2闈為浂錛屽氨緙栬瘧your code2錛屽惁鍒欙紝灝辯紪璇憏our code3<br /><br />鍏朵粬棰勭紪璇戞寚浠?br />闄や簡涓婇潰鎴戜滑璇寸殑闆嗕腑甯哥敤鐨勭紪璇戞寚浠わ紝榪樻湁3縐嶄笉澶父瑙佺殑緙栬瘧鎸囦護錛?line銆?error銆?pragma錛屾垜浠帴涓嬫潵灝辯畝鍗曠殑璋堜竴涓嬨?br />#line鐨勮娉曞涓嬶細<br />#line number filename<br />渚嬪錛?line 30 a.h 鍏朵腑錛屾枃浠跺悕a.h鍙互鐪佺暐涓嶅啓銆?br />榪欐潯鎸囦護鍙互鏀瑰彉褰撳墠鐨勮鍙峰拰鏂囦歡鍚嶏紝渚嬪涓婇潰鐨勮繖鏉¢澶勭悊鎸囦護灝卞彲浠ユ敼鍙樺綋鍓嶇殑琛屽彿涓?0錛屾枃浠跺悕鏄痑.h銆傚垵鐪嬭搗鏉ヤ技涔庢病鏈変粈涔堢敤錛屼笉榪囷紝浠栬繕鏄湁鐐圭敤鐨勶紝閭e氨鏄敤鍦ㄧ紪璇戝櫒鐨勭紪鍐欎腑錛屾垜浠煡閬撶紪璇戝櫒瀵笴++婧愮爜緙栬瘧榪囩▼涓細浜х敓涓浜涗腑闂存枃浠訛紝閫氳繃榪欐潯鎸囦護錛屽彲浠ヤ繚璇佹枃浠跺悕鏄浐瀹氱殑錛屼笉浼氳榪欎簺涓棿鏂囦歡浠f浛錛屾湁鍒╀簬榪涜鍒嗘瀽銆?br />#error璇硶濡備笅錛?br />#error info<br />渚嬪錛?ifndef UNIX<br />#error This software requires the UNIX OS.<br />#endif<br />榪欐潯鎸囦護涓昏鏄粰鍑洪敊璇俊鎭紝涓婇潰鐨勮繖涓緥瀛愬氨鏄紝濡傛灉娌℃湁鍦║NIX鐜涓嬶紝灝變細杈撳嚭This software requires the UNIX OS.鐒跺悗璇卞彂緙栬瘧鍣ㄧ粓姝€傛墍浠ユ葷殑鏉ヨ錛岃繖鏉℃寚浠ょ殑鐩殑灝辨槸鍦ㄧ▼搴忓穿婧冧箣鍓嶈兘澶熺粰鍑轟竴瀹氱殑淇℃伅銆?br />#pragma鏄潪緇熶竴鐨勶紝浠栬渚濋潬鍚勪釜緙栬瘧鍣ㄧ敓浜ц咃紝渚嬪錛屽湪SUN C++緙栬瘧鍣ㄤ腑錛?br />// 鎶妌ame鍜寁al鐨勮搗濮嬪湴鍧璋冩暣涓?涓瓧鑺傜殑鍊嶆暟<br />#progma align 8 (name, val)<br />char name[9];<br />double val;<br />//鍦ㄧ▼搴忔墽琛屽紑濮嬶紝璋冪敤鍑芥暟MyFunction<br />#progma init (MyFunction)<br />棰勫畾涔夋爣璇嗙<br />涓轟簡澶勭悊涓浜涙湁鐢ㄧ殑淇℃伅錛岄澶勭悊瀹氫箟浜嗕竴浜涢澶勭悊鏍囪瘑絎︼紝铏界劧鍚勭緙栬瘧鍣ㄧ殑棰勫鐞嗘爣璇嗙涓嶅敖鐩稿悓錛屼絾鏄粬浠兘浼氬鐞嗕笅闈㈢殑4縐嶏細<br />__FILE__ 姝e湪緙栬瘧鐨勬枃浠剁殑鍚嶅瓧<br />__LINE__ 姝e湪緙栬瘧鐨勬枃浠剁殑琛屽彿<br />__DATE__ 緙栬瘧鏃跺埢鐨勬棩鏈熷瓧絎︿覆錛屼緥濡傦細 "25 Dec 2000"<br />__TIME__ 緙栬瘧鏃跺埢鐨勬椂闂村瓧絎︿覆錛屼緥濡傦細 "12:30:55"<br />渚嬪錛歝out<<"The file is :"<<__FILE__"<<"! The lines is:"<<__LINE__<<endl;<br /><br />棰勫鐞嗕綍鍘諱綍浠?br />濡備綍鍙栦唬#include棰勫鐞嗘寚浠わ紝鎴戜滑鍦ㄨ繖閲屽氨涓嶅啀涓涓璁ㄨ浜嗐?br />C++騫舵病鏈変負#include鎻愪緵鏇夸唬褰㈠紡錛屼絾鏄痭amespace鎻愪緵浜嗕竴縐嶄綔鐢ㄥ煙鏈哄埗錛屽畠鑳戒互鏌愮鏂瑰紡鏀寔緇勫悎錛屽埄鐢ㄥ畠鍙互鏀瑰杽#include鐨勮涓烘柟寮忥紝浣嗘槸鎴戜滑榪樻槸鏃犳硶鍙栦唬#include銆?br />#progma搴旇綆楁槸涓涓彲鏈夊彲鏃犵殑棰勫鐞嗘寚浠わ紝鎸夌収C++涔嬬埗Bjarne鐨勮瘽璇達紝灝辨槸錛?#progma琚繃鍒嗙殑緇忓父鐨勭敤浜庡皢璇█璇箟鐨勫彉褰㈤殣钘忓埌緙栬瘧緋葷粺閲岋紝鎴栬呰鐢ㄤ簬鎻愪緵甯︽湁鐗規畩璇箟鍜岀鎷欒娉曠殑璇█鎵╁厖銆傗?br />瀵逛簬#ifdef錛屾垜浠粛鐒舵潫鎵嬫棤絳栵紝灝辯畻鏄垜浠埄鐢╥f璇彞鍜屽父閲忚〃杈懼紡錛屼粛鐒朵笉瓚充互鏇夸唬濂癸紝鍥犱負涓涓猧f璇彞鐨勬鏂囧繀欏誨湪璇硶涓婃紜紝婊¤凍綾繪鏌ワ紝鍗充嬌浠栧鍦ㄤ竴涓粷涓嶄細琚墽琛岀殑鍒嗘敮閲岄潰銆?</span> <img src ="http://m.shnenglu.com/lmlf001/aggbug/5873.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lmlf001/" target="_blank">鑺ヤ箣鑸?/a> 2006-04-19 13:14 <a href="http://m.shnenglu.com/lmlf001/archive/2006/04/19/5873.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀛楃涓插鐞嗗簱涓殑鍐呭瓨鍑芥暟http://m.shnenglu.com/lmlf001/archive/2006/04/19/5872.html鑺ヤ箣鑸?/dc:creator>鑺ヤ箣鑸?/author>Wed, 19 Apr 2006 05:00:00 GMThttp://m.shnenglu.com/lmlf001/archive/2006/04/19/5872.htmlhttp://m.shnenglu.com/lmlf001/comments/5872.htmlhttp://m.shnenglu.com/lmlf001/archive/2006/04/19/5872.html#Feedback0http://m.shnenglu.com/lmlf001/comments/commentRss/5872.htmlhttp://m.shnenglu.com/lmlf001/services/trackbacks/5872.html
鍑芥暟鍘熷瀷鍑芥暟鎻忚堪
void *memcpy(void *s1,const void *s2, size_t n)鎶?/span>s2鎵鎸囩殑瀵硅薄涓殑n涓瓧絎﹀鍒跺埌s1鎵鎸囩殑瀵硅薄涓傝繑鍥?/span>s1緇撴灉鎸囬拡
void *memmove(void *s1,const void *s2,size_t n)鍚?/span>memcpy,騫朵笖澶氳冭檻浜嗛噸鍙犳儏鍐碉紙Overlapping Buffers錛?/span>
int memcmp(const void *s1,const void *s2,size_t n)

s1鍜?/span>s2鎸囧悜瀵硅薄鐨勫墠n涓瓧絎︺傚鏋?/span>s1鎵鎸囧悜瀵硅薄鐨勫瓧絎︾瓑浜庛佸皬浜庢垨澶т簬s2鎵鎸囧悜瀵硅薄涓殑瀛楃錛岃繑鍥炲煎垎鍒瓑浜?/span>0銆?/span><0 銆?/span>>0

void *memchr(const char *s,int c,size_t n)瀹氫綅s鐨勫墠n涓瓧絎﹂嬈″嚭鐜?/span>c鐨勪綅緗傛壘鍒板氨榪斿洖鎸囧悜瀹冪殑鎸囬拡錛屽惁鍒欒繑鍥?/span>0
void *memset(void *s, int c,size_t n)鎶?/span>c澶嶅埗鍒?/span>s鎵鎸囩殑瀵硅薄鐨勫墠n涓瓧絎︿腑銆傝繑鍥炴寚鍚戠粨鏋滄寚閽?/span>


]]>
瀛楃涓插鐞嗗簱涓殑鏌ユ壘鍑芥暟http://m.shnenglu.com/lmlf001/archive/2006/04/19/5871.html鑺ヤ箣鑸?/dc:creator>鑺ヤ箣鑸?/author>Wed, 19 Apr 2006 04:57:00 GMThttp://m.shnenglu.com/lmlf001/archive/2006/04/19/5871.htmlhttp://m.shnenglu.com/lmlf001/comments/5871.htmlhttp://m.shnenglu.com/lmlf001/archive/2006/04/19/5871.html#Feedback0http://m.shnenglu.com/lmlf001/comments/commentRss/5871.htmlhttp://m.shnenglu.com/lmlf001/services/trackbacks/5871.html
鍑芥暟鍘熷瀷鍑芥暟鎻忚堪
char *strchr(const char *s,int c)鏌ユ壘c鍦?/span>s涓嬈″嚭鐜扮殑浣嶇疆錛屾垚鍔熷皢榪斿洖璇ヤ綅緗殑鎸囬拡錛屽惁鍒欒繑鍥?/span>NULL
size_t strcspn(const char *s1,const char *s2)璁$畻騫惰繑鍥?/span>s1涓笉鍖呭惈s2涓換浣曞瓧絎︾殑璧峰孌電殑闀垮害銆傚嵆鍦?/span>s1涓煡鎵炬槸鍚︽湁s2鐨勫瓧絎︼紝鑻ョ鍒版湁璇ュ瓧絎﹀垯榪斿洖浠庡紑濮嬶紙鏁版暟1寮濮嬶級鍒拌瀛楃涔嬪墠鐨勫瓧絎︿覆闀垮害銆?/span>

size_t strspn(const char *s1,const char *s2)

璁$畻騫惰繑鍥?/span>s1涓彧鍖呭惈s2涓瓧絎︾殑璧峰孌甸暱搴︺傚嵆褰撳湪s1涓病閬囧埌鍦?/span>s2涓殑瀛楃鏃訛紝榪斿洖浠庡紑濮嬪埌璇ュ瓧絎︿箣鍓嶇殑瀛楃涓茬殑闀垮害銆?/span>
char *strpbrk(const char *s1,const char *s2)瀹氫綅瀛楃涓?/span>s1棣栨鍑虹幇鍦ㄥ瓧絎︿覆s2涓瓧絎︾殑浣嶇疆銆傝嫢鎵懼埌浜嗗瓧絎︿覆s2涓殑瀛楃錛岃繑鍥炰竴涓寚鍚戝瓧絎︿覆s1涓瀛楃鐨勬寚閽堬紝鍚﹀垯榪斿洖NULL
char *strrchr(const char *s,int c)榪斿洖c鍦?/span>s涓渶鍚庝竴嬈″嚭鐜扮殑浣嶇疆鎸囬拡錛屽惁鍒欒繑鍥?/span>NULL

char *strstr(const char *s1, const char *s2)

榪斿洖s2鍦?/span>s1涓嬈″嚭鐜幫紙鏁翠釜瀛楃涓插尮閰嶏級鐨勪綅緗寚閽堬紝鍚﹀垯榪斿洖NULL


]]>
瀛楃涓蹭笌鏁板瓧涔嬮棿鐨勮漿鎹㈠嚱鏁?/title><link>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5870.html</link><dc:creator>鑺ヤ箣鑸?/dc:creator><author>鑺ヤ箣鑸?/author><pubDate>Wed, 19 Apr 2006 04:50:00 GMT</pubDate><guid>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5870.html</guid><wfw:comment>http://m.shnenglu.com/lmlf001/comments/5870.html</wfw:comment><comments>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5870.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/lmlf001/comments/commentRss/5870.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lmlf001/services/trackbacks/5870.html</trackback:ping><description><![CDATA[#include<stdlib.h><br /><br /><div align="center"><table id="table1" border="1" height="138" width="100%"><tbody><tr><td><font size="2">鍑芥暟鍘熷瀷</font></td><td>鍑芥暟鎻忚堪</td></tr><tr><td><font size="2"><span lang="EN-US">double atof(const char *nPtr)<span style="">聽</span></span></font></td><td>鎶婂瓧絎︿覆<span lang="EN-US">nPtr</span>杞崲涓?span lang="EN-US">double</span>綾誨瀷</td></tr><tr><td><font size="2"><span lang="EN-US">int atoi(const char* nPtr)<span style="">聽</span></span></font></td><td>鎶婂瓧絎︿覆<span lang="EN-US">nPtr</span>杞崲涓?span lang="EN-US">int</span>綾誨瀷</td></tr><tr><td><font size="2">long atol(const char *nPtr)</font></td><td><p class="MsoNormal">鎶婂瓧絎︿覆<span lang="EN-US">nPtr</span>杞崲涓?span lang="EN-US">long</span></p></td></tr><tr><td><font size="2"><span lang="EN-US">double strtod(const char* nPtr,char **endPtr)</span></font></td><td>鎶婂瓧絎︿覆<span lang="EN-US">nPtr</span>杞崲涓?span lang="EN-US">double</span>綾誨瀷錛?span lang="EN-US">endPtr鎸囧悜nPtr涓涓涓笉鏄暟瀛楃殑瀛楃鐨勪綅緗?/span></td></tr><tr><td><font size="2"><span lang="EN-US">long strtol(const char *nPtr,char** endPtr, int base)</span></font></td><td>鎶婂瓧絎︿覆<span lang="EN-US">nPtr</span>杞崲涓?span lang="EN-US">long</span>綾誨瀷錛?span lang="EN-US">eendPtr鎸囧悜nPtr涓涓涓笉鏄暟瀛楃殑瀛楃鐨勪綅緗?/span>錛?span lang="EN-US">base</span>鏄緟杞崲瀛楃涓蹭腑鏁板肩殑榪涘埗綾誨瀷錛?span lang="EN-US">0</span>琛ㄧず鍙互鏄紙<span lang="EN-US">8</span>銆?span lang="EN-US">10</span>銆?span lang="EN-US">16</span>錛夈備篃鍙槸<span lang="EN-US">2</span>锝?span lang="EN-US">36</span>涓換浣曞箋?/td></tr><tr><td><p class="MsoNormal"><font size="2"><span lang="EN-US">unsigned long strtoul(const char* nPtr,char **endPtr, int base)</span></font></p><br /></td><td>鎶婂瓧絎︿覆<span lang="EN-US">nPtr</span>杞崲涓?span lang="EN-US">unsigned long</span>綾誨瀷錛?span lang="EN-US">endPtr鎸囧悜nPtr涓涓涓笉鏄暟瀛楃殑瀛楃鐨勪綅緗?/span>錛?span lang="EN-US">base</span>鏄緟杞崲瀛楃涓蹭腑鏁板肩殑榪涘埗綾誨瀷錛?span lang="EN-US">0</span>琛ㄧず鍙互鏄紙<span lang="EN-US">8</span>銆?span lang="EN-US">10</span>銆?span lang="EN-US">16</span>錛夈備篃鍙槸<span lang="EN-US">2</span>锝?span lang="EN-US">36</span>涓換浣曞箋?/td></tr></tbody></table></div><br /><img src ="http://m.shnenglu.com/lmlf001/aggbug/5870.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lmlf001/" target="_blank">鑺ヤ箣鑸?/a> 2006-04-19 12:50 <a href="http://m.shnenglu.com/lmlf001/archive/2006/04/19/5870.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C瀛楃澶勭悊鍑芥暟搴?/title><link>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5868.html</link><dc:creator>鑺ヤ箣鑸?/dc:creator><author>鑺ヤ箣鑸?/author><pubDate>Wed, 19 Apr 2006 04:28:00 GMT</pubDate><guid>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5868.html</guid><wfw:comment>http://m.shnenglu.com/lmlf001/comments/5868.html</wfw:comment><comments>http://m.shnenglu.com/lmlf001/archive/2006/04/19/5868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/lmlf001/comments/commentRss/5868.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lmlf001/services/trackbacks/5868.html</trackback:ping><description><![CDATA[ <p class="MsoNormal"> <span style="font-family: Verdana;" lang="EN-US">#include<ctype.h><br /></span> </p> <br /> <table style="width: 558px; height: 506px;" id="table1" border="1"> <tbody> <tr> <td width="152">鍑芥暟鍘熷瀷</td> <td> <font face="Book Antiqua">鍑芥暟鎻忚堪</font> </td> </tr> <tr> <td width="152"> <span lang="EN-US">int isdigit(int c)</span> </td> <td> <span style="font-family: Book Antiqua;">濡傛灉</span> <span style="font-family: Book Antiqua;" lang="EN-US">c</span> <span style="font-family: Book Antiqua;">鏄竴涓暟瀛楋紝榪斿洖</span> <span style="font-family: Book Antiqua;" lang="EN-US">true</span> <span style="font-family: Book Antiqua;">錛屽惁鍒欒繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">false</span> </td> </tr> <tr> <td width="152"> <span lang="EN-US">int isalpha(int c)</span> </td> <td> <span style="font-family: Book Antiqua;">濡傛灉</span> <span style="font-family: Book Antiqua;" lang="EN-US">c</span> <span style="font-family: Book Antiqua;">鏄竴涓瓧姣嶏紝榪斿洖</span> <span style="font-family: Book Antiqua;" lang="EN-US">true</span> <span style="font-family: Book Antiqua;">錛屽惁鍒欒繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">false</span> </td> </tr> <tr> <td width="152"> <span lang="EN-US">int isalnum(int c)</span> </td> <td> <span style="font-family: Book Antiqua;">濡傛灉</span> <span style="font-family: Book Antiqua;" lang="EN-US">c</span> <span style="font-family: Book Antiqua;">鏄竴涓瓧姣嶆垨鏁板瓧錛岃繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">true</span> <span style="font-family: Book Antiqua;">錛屽惁鍒欒繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">false</span> </td> </tr> <tr> <td width="152"> <span lang="EN-US">int isxdigit(int c)</span> </td> <td> <p class="MsoNormal"> <span style="font-family: Book Antiqua;">濡傛灉</span> <span style="font-family: Book Antiqua;" lang="EN-US">c</span> <span style="font-family: Book Antiqua;">鏄竴涓崄鍏繘鍒跺瓧絎︼紝榪斿洖</span> <span style="font-family: Book Antiqua;" lang="EN-US">true</span> <span style="font-family: Book Antiqua;">錛屽惁鍒欒繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">false</span> </p> </td> </tr> <tr> <td width="152"> <span lang="EN-US">int islower(int c)</span> </td> <td> <span style="font-family: Book Antiqua;">濡傛灉</span> <span style="font-family: Book Antiqua;" lang="EN-US">c</span> <span style="font-family: Book Antiqua;">鏄竴涓皬鍐欏瓧姣嶏紝榪斿洖</span> <span style="font-family: Book Antiqua;" lang="EN-US">true</span> <span style="font-family: Book Antiqua;">錛屽惁鍒欒繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">false</span> </td> </tr> <tr> <td width="152"> <span lang="EN-US">int isupper(int c) </span> </td> <td> <p class="MsoNormal"> <span style="font-family: Book Antiqua;">濡傛灉</span> <span style="font-family: Book Antiqua;" lang="EN-US">c</span> <span style="font-family: Book Antiqua;">鏄竴涓ぇ鍐欏瓧姣嶏紝榪斿洖</span> <span style="font-family: Book Antiqua;" lang="EN-US">true</span> <span style="font-family: Book Antiqua;">錛屽惁鍒欒繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">false</span> </p> </td> </tr> <tr> <td width="152"> <span lang="EN-US">int tolower(int c)</span> </td> <td> <p class="MsoNormal"> <span style="font-family: Book Antiqua;"> 濡傛灉c涓哄ぇ鍐欏瓧姣嶏紝榪斿洖鍏跺皬鍐欏瓧姣嶏紝鍚﹀垯榪斿洖鍘熷弬鏁?/span> </p> </td> </tr> <tr> <td width="152"> <p class="MsoNormal"> <span lang="EN-US">int toupper(int c)</span> </p> </td> <td> <p class="MsoNormal"> <span style="font-family: Book Antiqua;" lang="EN-US">濡傛灉c涓哄皬鍐欏瓧姣嶏紝</span> <span style="font-family: Book Antiqua;">榪斿洖鍏跺ぇ鍐欏瓧姣嶏紝鍚﹀垯榪斿洖鍘熷弬鏁?/span> </p> </td> </tr> <tr> <td width="152"> <span lang="EN-US">int isspace(int c) </span> </td> <td> <span style="font-family: Book Antiqua;">濡傛灉</span> <span style="font-family: Book Antiqua;" lang="EN-US">c</span> <span style="font-family: Book Antiqua;">鏄竴涓┖鐧界錛岃繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">true</span> <span style="font-family: Book Antiqua;">錛屽惁鍒欒繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">false</span> <span style="font-family: Book Antiqua;">銆傜┖鐧界鍖呮嫭錛?/span> <span style="font-family: Book Antiqua;" lang="EN-US">鈥橽n鈥? </span> <span style="font-family: Book Antiqua;">絀烘牸錛?/span> <span style="font-family: Book Antiqua;" lang="EN-US">鈥橽t鈥? , 鈥榎r鈥?,</span> <span style="font-family: Book Antiqua;">榪涚焊絎︼紙</span> <span style="font-family: Book Antiqua;" lang="EN-US">鈥橽f鈥?/span> <span style="font-family: Book Antiqua;">錛?/span> <span style="font-family: Book Antiqua;" lang="EN-US">,</span> <span style="font-family: Book Antiqua;">鍨傜洿鍒惰〃絎?/span> <span style="font-family: Book Antiqua;" lang="EN-US">(鈥榎v鈥?</span> </td> </tr> <tr> <td width="152"> <span lang="EN-US">int iscntrl(int c)</span> </td> <td> <span style="font-family: Book Antiqua;" lang="EN-US"> </span> <span style="font-family: Book Antiqua;">濡傛灉</span> <span style="font-family: Book Antiqua;" lang="EN-US">c</span> <span style="font-family: Book Antiqua;">鏄竴涓帶鍒剁錛岃繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">true</span> <span style="font-family: Book Antiqua;">錛屽惁鍒欒繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">false</span> </td> </tr> <tr> <td width="152"> <span lang="EN-US">int ispunct(int c)</span> </td> <td> <p class="MsoNormal"> <span style="font-family: Book Antiqua;" lang="EN-US"> </span> <span style="font-family: Book Antiqua;">濡傛灉</span> <span style="font-family: Book Antiqua;" lang="EN-US">c</span> <span style="font-family: Book Antiqua;">鏄竴涓櫎絀烘牸銆佹暟瀛楀拰瀛楁瘝澶栫殑鍙墦鍗板瓧絎︼紝榪斿洖</span> <span style="font-family: Book Antiqua;" lang="EN-US">true</span>,<span style="font-family: Book Antiqua;">鍚﹀垯榪斿洖</span><span style="font-family: Book Antiqua;" lang="EN-US">false</span></p> </td> </tr> <tr> <td width="152"> <span lang="EN-US">int isprint(int c) </span> </td> <td> <p class="MsoNormal"> <span style="font-family: Book Antiqua;">濡傛灉</span> <span style="font-family: Book Antiqua;" lang="EN-US">c</span> <span style="font-family: Book Antiqua;">鏄竴涓彲鎵撳嵃絎︼紙鍖呮嫭絀烘牸錛夛紝榪斿洖</span> <span style="font-family: Book Antiqua;" lang="EN-US">true</span> <span style="font-family: Book Antiqua;">錛屽惁鍒欒繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">false</span> </p> </td> </tr> <tr> <td width="152"> <span lang="EN-US">int isgraph(int c)</span> </td> <td> <p class="MsoNormal"> <span style="font-family: Book Antiqua;" lang="EN-US"> </span> <span style="font-family: Book Antiqua;">濡傛灉</span> <span style="font-family: Book Antiqua;" lang="EN-US">c</span> <span style="font-family: Book Antiqua;">鏄櫎絀烘牸涔嬪鐨勫彲鎵撳嵃瀛楃錛岃繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">true</span> <span style="font-family: Book Antiqua;">錛屽惁鍒欒繑鍥?/span> <span style="font-family: Book Antiqua;" lang="EN-US">false</span> </p> </td> </tr> </tbody> </table> <img src ="http://m.shnenglu.com/lmlf001/aggbug/5868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lmlf001/" target="_blank">鑺ヤ箣鑸?/a> 2006-04-19 12:28 <a href="http://m.shnenglu.com/lmlf001/archive/2006/04/19/5868.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C++鏂囦歡鎿嶄綔http://m.shnenglu.com/lmlf001/archive/2006/04/18/5815.html鑺ヤ箣鑸?/dc:creator>鑺ヤ箣鑸?/author>Tue, 18 Apr 2006 05:03:00 GMThttp://m.shnenglu.com/lmlf001/archive/2006/04/18/5815.htmlhttp://m.shnenglu.com/lmlf001/comments/5815.htmlhttp://m.shnenglu.com/lmlf001/archive/2006/04/18/5815.html#Feedback5http://m.shnenglu.com/lmlf001/comments/commentRss/5815.htmlhttp://m.shnenglu.com/lmlf001/services/trackbacks/5815.html聽鍦–++涓紝鏈変竴涓猻tream榪欎釜綾伙紝鎵鏈夌殑I/O閮戒互榪欎釜鈥滄祦鈥濈被涓哄熀紜鐨勶紝鍖呮嫭鎴戜滑瑕佽璇嗙殑鏂囦歡I/O錛宻tream榪欎釜綾繪湁涓や釜閲嶈鐨勮繍綆楃錛?

1銆佹彃鍏ュ櫒(<<)
銆 銆鍚戞祦杈撳嚭鏁版嵁銆傛瘮濡傝緋葷粺鏈変竴涓粯璁ょ殑鏍囧噯杈撳嚭嫻?cout)錛屼竴鑸儏鍐典笅灝辨槸鎸囩殑鏄劇ず鍣紝鎵浠ワ紝cout<<"Write Stdout"<<'\n';灝辮〃紺烘妸瀛楃涓?Write Stdout"鍜屾崲琛屽瓧絎?'\n')杈撳嚭鍒版爣鍑嗚緭鍑烘祦銆?

2銆佹瀽鍙栧櫒(>>)
銆銆浠庢祦涓緭鍏ユ暟鎹傛瘮濡傝緋葷粺鏈変竴涓粯璁ょ殑鏍囧噯杈撳叆嫻?cin)錛屼竴鑸儏鍐典笅灝辨槸鎸囩殑閿洏錛屾墍浠ワ紝cin>>x;灝辮〃紺轟粠鏍囧噯杈撳叆嫻佷腑璇誨彇涓涓寚瀹氱被鍨?鍗沖彉閲弜鐨勭被鍨?鐨勬暟鎹?

銆銆鍦–++涓紝瀵規枃浠剁殑鎿嶄綔鏄氳繃stream鐨勫瓙綾籪stream(file stream)鏉ュ疄鐜扮殑錛屾墍浠ワ紝瑕佺敤榪欑鏂瑰紡鎿嶄綔鏂囦歡錛屽氨蹇呴』鍔犲叆澶存枃浠秄stream.h銆備笅闈㈠氨鎶婃綾葷殑鏂囦歡鎿嶄綔榪囩▼涓涓閬撴潵銆?

涓銆佹墦寮鏂囦歡
銆銆鍦╢stream綾諱腑錛屾湁涓涓垚鍛樺嚱鏁皁pen()錛屽氨鏄敤鏉ユ墦寮鏂囦歡鐨勶紝鍏跺師鍨嬫槸錛?

void open(const char* filename,int mode,int access);

鍙傛暟錛?

filename錛氥銆瑕佹墦寮鐨勬枃浠跺悕
mode錛氥銆銆銆瑕佹墦寮鏂囦歡鐨勬柟寮?
access錛氥銆銆鎵撳紑鏂囦歡鐨勫睘鎬?
鎵撳紑鏂囦歡鐨勬柟寮忓湪綾籭os(鏄墍鏈夋祦寮廔/O綾葷殑鍩虹被)涓畾涔夛紝甯哥敤鐨勫煎涓嬶細

ios::app錛氥銆銆浠ヨ拷鍔犵殑鏂瑰紡鎵撳紑鏂囦歡
ios::ate錛氥銆銆鏂囦歡鎵撳紑鍚庡畾浣嶅埌鏂囦歡灝撅紝ios:app灝卞寘鍚湁姝ゅ睘鎬?
ios::binary錛?銆浠ヤ簩榪涘埗鏂瑰紡鎵撳紑鏂囦歡錛岀己鐪佺殑鏂瑰紡鏄枃鏈柟寮忋備袱縐嶆柟寮忕殑鍖哄埆瑙佸墠鏂?
ios::in錛氥銆銆 鏂囦歡浠ヨ緭鍏ユ柟寮忔墦寮
ios::out錛氥銆銆鏂囦歡浠ヨ緭鍑烘柟寮忔墦寮
ios::nocreate錛?涓嶅緩绔嬫枃浠訛紝鎵浠ユ枃浠朵笉瀛樺湪鏃舵墦寮澶辮觸銆
ios::noreplace錛氫笉瑕嗙洊鏂囦歡錛屾墍浠ユ墦寮鏂囦歡鏃跺鏋滄枃浠跺瓨鍦ㄥけ璐?
ios::trunc錛氥銆濡傛灉鏂囦歡瀛樺湪錛屾妸鏂囦歡闀垮害璁句負0
銆銆鍙互鐢ㄢ滄垨鈥濇妸浠ヤ笂灞炴ц繛鎺ヨ搗鏉ワ紝濡俰os::out|ios::binary

銆銆鎵撳紑鏂囦歡鐨勫睘鎬у彇鍊兼槸錛?

0錛氭櫘閫氭枃浠訛紝鎵撳紑璁塊棶
1錛氬彧璇繪枃浠?
2錛氶殣鍚枃浠?
4錛氱郴緇熸枃浠?
銆銆鍙互鐢ㄢ滄垨鈥濇垨鑰呪?鈥濇妸浠ヤ笂灞炴ц繛鎺ヨ搗鏉?錛屽3鎴?|2灝辨槸浠ュ彧璇誨拰闅愬惈灞炴ф墦寮鏂囦歡銆?

銆銆渚嬪錛氫互浜岃繘鍒惰緭鍏ユ柟寮忔墦寮鏂囦歡c:\config.sys

銆銆fstream file1;
銆銆file1.open("c:\\config.sys",ios::binary|ios::in,0);

銆銆濡傛灉open鍑芥暟鍙湁鏂囦歡鍚嶄竴涓弬鏁幫紝鍒欐槸浠ヨ/鍐欐櫘閫氭枃浠舵墦寮錛屽嵆錛?

銆銆file1.open("c:\\config.sys");<=>file1.open("c:\\config.sys",ios::in|ios::out,0);

銆銆鍙﹀錛宖stream榪樻湁鍜宱pen()涓鏍風殑鏋勯犲嚱鏁幫紝瀵逛簬涓婁緥錛屽湪瀹氫箟鐨勬椂渚氨鍙互鎵撳紑鏂囦歡浜嗭細

銆銆fstream file1("c:\\config.sys");

銆銆鐗瑰埆鎻愬嚭鐨勬槸錛宖stream鏈変袱涓瓙綾伙細ifstream(input file stream)鍜宱fstream(outpu file stream)錛宨fstream榛樿浠ヨ緭鍏ユ柟寮忔墦寮鏂囦歡錛岃宱fstream榛樿浠ヨ緭鍑烘柟寮忔墦寮鏂囦歡銆?

銆銆ifstream file2("c:\\pdos.def");//浠ヨ緭鍏ユ柟寮忔墦寮鏂囦歡
銆銆ofstream file3("c:\\x.123");//浠ヨ緭鍑烘柟寮忔墦寮鏂囦歡

銆銆鎵浠ワ紝鍦ㄥ疄闄呭簲鐢ㄤ腑錛屾牴鎹渶瑕佺殑涓嶅悓錛岄夋嫨涓嶅悓鐨勭被鏉ュ畾涔夛細濡傛灉鎯充互杈撳叆鏂瑰紡鎵撳紑錛屽氨鐢╥fstream鏉ュ畾涔夛紱濡傛灉鎯充互杈撳嚭鏂瑰紡鎵撳紑錛屽氨鐢╫fstream鏉ュ畾涔夛紱濡傛灉鎯充互杈撳叆/杈撳嚭鏂瑰紡鏉ユ墦寮錛屽氨鐢╢stream鏉ュ畾涔夈?

浜屻佸叧闂枃浠?
銆銆鎵撳紑鐨勬枃浠朵嬌鐢ㄥ畬鎴愬悗涓瀹氳鍏抽棴錛宖stream鎻愪緵浜嗘垚鍛樺嚱鏁癱lose()鏉ュ畬鎴愭鎿嶄綔錛屽錛歠ile1.close();灝辨妸file1鐩歌繛鐨勬枃浠跺叧闂?

涓夈佽鍐欐枃浠?
銆銆璇誨啓鏂囦歡鍒嗕負鏂囨湰鏂囦歡鍜屼簩榪涘埗鏂囦歡鐨勮鍙栵紝瀵逛簬鏂囨湰鏂囦歡鐨勮鍙栨瘮杈冪畝鍗曪紝鐢ㄦ彃鍏ュ櫒鍜屾瀽鍙栧櫒灝卞彲浠ヤ簡錛涜屽浜庝簩榪涘埗鐨勮鍙栧氨瑕佸鏉備簺錛屼笅瑕佸氨璇︾粏鐨勪粙緇嶈繖涓ょ鏂瑰紡

銆銆1銆佹枃鏈枃浠剁殑璇誨啓
銆銆鏂囨湰鏂囦歡鐨勮鍐欏緢綆鍗曪細鐢ㄦ彃鍏ュ櫒(<<)鍚戞枃浠惰緭鍑猴紱鐢ㄦ瀽鍙栧櫒(>>)浠庢枃浠惰緭鍏ャ傚亣璁緁ile1鏄互杈撳叆鏂瑰紡鎵撳紑錛宖ile2浠ヨ緭鍑烘墦寮銆傜ず渚嬪涓嬶細

銆銆file2<<"I Love You";//鍚戞枃浠跺啓鍏ュ瓧絎︿覆"I Love You"
銆銆int i;
銆銆file1>>i;//浠庢枃浠惰緭鍏ヤ竴涓暣鏁板箋?

銆銆榪欑鏂瑰紡榪樻湁涓縐嶇畝鍗曠殑鏍煎紡鍖栬兘鍔涳紝姣斿鍙互鎸囧畾杈撳嚭涓?6榪涘埗絳夌瓑錛屽叿浣撶殑鏍煎紡鏈変互涓嬩竴浜?

鎿嶇旱絎?鍔熻兘 杈撳叆/杈撳嚭
dec 鏍煎紡鍖栦負鍗佽繘鍒舵暟鍊兼暟鎹?杈撳叆鍜岃緭鍑?
endl 杈撳嚭涓涓崲琛岀騫跺埛鏂版嫻?杈撳嚭
ends 杈撳嚭涓涓┖瀛楃 杈撳嚭
hex 鏍煎紡鍖栦負鍗佸叚榪涘埗鏁板兼暟鎹?杈撳叆鍜岃緭鍑?
oct 鏍煎紡鍖栦負鍏繘鍒舵暟鍊兼暟鎹?杈撳叆鍜岃緭鍑?
setpxecision(int p) 璁劇疆嫻偣鏁扮殑綺懼害浣嶆暟 杈撳嚭

銆銆姣斿瑕佹妸123褰撲綔鍗佸叚榪涘埗杈撳嚭錛歠ile1<<<123;瑕佹妸3.1415926浠?浣嶇簿搴﹁緭鍑猴細FILE1<<<3.1415926銆?

銆銆2銆佷簩榪涘埗鏂囦歡鐨勮鍐?
鈶爌ut()
銆銆put()鍑芥暟鍚戞祦鍐欏叆涓涓瓧絎︼紝鍏跺師鍨嬫槸ofstream &put(char ch)錛屼嬌鐢ㄤ篃姣旇緝綆鍗曪紝濡俧ile1.put('c');灝辨槸鍚戞祦鍐欎竴涓瓧絎?c'銆?

鈶et()
銆銆get()鍑芥暟姣旇緝鐏墊椿錛屾湁3縐嶅父鐢ㄧ殑閲嶈澆褰㈠紡錛?

銆銆涓縐嶅氨鏄拰put()瀵瑰簲鐨勫艦寮忥細ifstream &get(char &ch);鍔熻兘鏄粠嫻佷腑璇誨彇涓涓瓧絎︼紝緇撴灉淇濆瓨鍦ㄥ紩鐢╟h涓紝濡傛灉鍒版枃浠跺熬錛岃繑鍥炵┖瀛楃銆傚file2.get(x);琛ㄧず浠庢枃浠朵腑璇誨彇涓涓瓧絎︼紝騫舵妸璇誨彇鐨勫瓧絎︿繚瀛樺湪x涓?

銆銆鍙︿竴縐嶉噸杞藉艦寮忕殑鍘熷瀷鏄細 int get();榪欑褰㈠紡鏄粠嫻佷腑榪斿洖涓涓瓧絎︼紝濡傛灉鍒拌揪鏂囦歡灝撅紝榪斿洖EOF錛屽x=file2.get();鍜屼笂渚嬪姛鑳芥槸涓鏍風殑銆?

銆 銆榪樻湁涓縐嶅艦寮忕殑鍘熷瀷鏄細ifstream &get(char *buf,int num,char delim='\n')錛涜繖縐嶅艦寮忔妸瀛楃璇誨叆鐢?buf 鎸囧悜鐨勬暟緇勶紝鐩村埌璇誨叆浜?num 涓瓧絎︽垨閬囧埌浜嗙敱 delim 鎸囧畾鐨勫瓧絎︼紝濡傛灉娌′嬌鐢? delim 榪欎釜鍙傛暟錛屽皢浣跨敤緙虹渷鍊兼崲琛岀'\n'銆備緥濡傦細

銆銆file2.get(str1,127,'A');//浠庢枃浠朵腑璇誨彇瀛楃鍒板瓧絎︿覆str1錛屽綋閬囧埌瀛楃'A'鎴栬鍙栦簡127涓瓧絎︽椂緇堟銆?

鈶㈣鍐欐暟鎹潡
銆銆瑕佽鍐欎簩榪涘埗鏁版嵁鍧楋紝浣跨敤鎴愬憳鍑芥暟read()鍜寃rite()鎴愬憳鍑芥暟錛屽畠浠師鍨嬪涓嬶細

銆銆銆銆read(unsigned char *buf,int num);
銆銆銆銆write(const unsigned char *buf,int num);

銆 銆read()浠庢枃浠朵腑璇誨彇 num 涓瓧絎﹀埌 buf 鎸囧悜鐨勭紦瀛樹腑錛屽鏋滃湪榪樻湭璇誨叆 num 涓瓧絎︽椂灝卞埌浜嗘枃浠跺熬錛屽彲浠ョ敤鎴愬憳鍑芥暟 int gcount();鏉ュ彇寰楀疄闄呰鍙栫殑瀛楃鏁幫紱鑰?write() 浠巄uf 鎸囧悜鐨勭紦瀛樺啓 num 涓瓧絎﹀埌鏂囦歡涓紝鍊煎緱娉ㄦ剰鐨勬槸緙撳瓨鐨勭被鍨嬫槸 unsigned char *錛屾湁鏃跺彲鑳介渶瑕佺被鍨嬭漿鎹€?

渚嬶細

銆銆銆銆unsigned char str1[]="I Love You";
銆銆銆銆int n[5];
銆銆銆銆ifstream in("xxx.xxx");
銆銆銆銆ofstream out("yyy.yyy");
銆銆銆銆out.write(str1,strlen(str1));//鎶婂瓧絎︿覆str1鍏ㄩ儴鍐欏埌yyy.yyy涓?
銆銆銆銆in.read((unsigned char*)n,sizeof(n));//浠巟xx.xxx涓鍙栨寚瀹氫釜鏁存暟錛屾敞鎰忕被鍨嬭漿鎹?
銆銆銆銆in.close();out.close();

鍥涖佹嫻婨OF
銆銆鎴愬憳鍑芥暟eof()鐢ㄦ潵媯嫻嬫槸鍚﹀埌杈炬枃浠跺熬錛屽鏋滃埌杈炬枃浠跺熬榪斿洖闈?鍊鹼紝鍚﹀垯榪斿洖0銆傚師鍨嬫槸int eof();

渚嬶細銆銆if(in.eof())ShowMessage("宸茬粡鍒拌揪鏂囦歡灝撅紒");

浜斻佹枃浠跺畾浣?
銆 銆鍜孋鐨勬枃浠舵搷浣滄柟寮忎笉鍚岀殑鏄紝C++ I/O緋葷粺綆$悊涓や釜涓庝竴涓枃浠剁浉鑱旂郴鐨勬寚閽堛備竴涓槸璇繪寚閽堬紝瀹冭鏄庤緭鍏ユ搷浣滃湪鏂囦歡涓殑浣嶇疆錛涘彟涓涓槸鍐欐寚閽堬紝瀹冧笅嬈″啓鎿嶄綔鐨勪綅緗傛瘡嬈℃墽琛岃緭鍏ユ垨杈撳嚭鏃訛紝 鐩稿簲鐨勬寚閽堣嚜鍔ㄥ彉鍖栥傛墍浠ワ紝C++鐨勬枃浠跺畾浣嶅垎涓鴻浣嶇疆鍜屽啓浣嶇疆鐨勫畾浣嶏紝瀵瑰簲鐨勬垚鍛樺嚱鏁版槸 seekg()鍜? seekp()錛宻eekg()鏄緗浣嶇疆錛宻eekp鏄緗啓浣嶇疆銆傚畠浠渶閫氱敤鐨勫艦寮忓涓嬶細

銆銆銆銆istream &seekg(streamoff offset,seek_dir origin);
銆銆銆銆ostream &seekp(streamoff offset,seek_dir origin);

銆銆streamoff瀹氫箟浜?iostream.h 涓紝瀹氫箟鏈夊亸縐婚噺 offset 鎵鑳藉彇寰楃殑鏈澶у鹼紝seek_dir 琛ㄧず縐誨姩鐨勫熀鍑嗕綅緗紝鏄竴涓湁浠ヤ笅鍊肩殑鏋氫婦錛?

ios::beg錛氥銆鏂囦歡寮澶?
ios::cur錛氥銆鏂囦歡褰撳墠浣嶇疆
ios::end錛氥銆鏂囦歡緇撳熬
銆銆榪欎袱涓嚱鏁頒竴鑸敤浜庝簩榪涘埗鏂囦歡錛屽洜涓烘枃鏈枃浠朵細鍥犱負緋葷粺瀵瑰瓧絎︾殑瑙i噴鑰屽彲鑳戒笌棰勬兂鐨勫間笉鍚屻?

渚嬶細

銆銆銆銆 file1.seekg(1234,ios::cur);//鎶婃枃浠剁殑璇繪寚閽堜粠褰撳墠浣嶇疆鍚戝悗縐?234涓瓧鑺?
銆銆銆銆 file2.seekp(1234,ios::beg);//鎶婃枃浠剁殑鍐欐寚閽堜粠鏂囦歡寮澶村悜鍚庣Щ1234涓瓧鑺?br />



]]>
C++I/O鎿嶄綔http://m.shnenglu.com/lmlf001/archive/2006/04/17/5761.html鑺ヤ箣鑸?/dc:creator>鑺ヤ箣鑸?/author>Mon, 17 Apr 2006 08:15:00 GMThttp://m.shnenglu.com/lmlf001/archive/2006/04/17/5761.htmlhttp://m.shnenglu.com/lmlf001/comments/5761.htmlhttp://m.shnenglu.com/lmlf001/archive/2006/04/17/5761.html#Feedback0http://m.shnenglu.com/lmlf001/comments/commentRss/5761.htmlhttp://m.shnenglu.com/lmlf001/services/trackbacks/5761.html 鍘熸枃鍦板潃:http://wonderow.cnblogs.com/archive/2005/06/21/178719.html

鏍煎紡鎺у埗

聽聽聽 鍦ㄥ墠闈紝杈撳叆錛忚緭鍑虹殑鏁版嵁娌℃湁鎸囧畾鏍煎紡錛屽畠浠兘鎸夌己鐪佺殑鏍煎紡杈撳叆錛忚緭鍑恒傜劧鑰岋紝鏈夋椂闇瑕佸鏁版嵁 鏍煎紡榪涜鎺у埗銆傝繖鏃墮渶鍒╃敤ios綾諱腑瀹氫箟鐨勬牸寮忔帶鍒舵垚鍛樺嚱鏁幫紝閫氳繃璋冪敤瀹冧滑鏉ュ畬鎴愭牸寮忕殑璁劇疆銆俰os綾葷殑鏍煎紡鎺у埗鍑芥暟濡備笅鎵紺猴細

long flags( ) const 榪斿洖褰撳墠鐨勬牸寮忔爣蹇椼?/font>
long flays(long newflag) 璁劇疆鏍煎紡鏍囧織涓簄ewflag錛岃繑鍥炴棫鐨勬牸寮忔爣蹇椼?/font>
long setf(long bits) 聽 璁劇疆鎸囧畾鐨勬牸寮忔爣蹇椾綅錛岃繑鍥炴棫鐨勬牸寮忔爣蹇椼?/font>
long setf(long bits,long field) 灝唂ield鎸囧畾鐨勬牸寮忔爣蹇椾綅緗負bits錛岃繑鍥炴棫鐨勬牸寮忔爣蹇椼?/font>
long unsetf(long bits) 娓呴櫎bits鎸囧畾鐨勬牸寮忔爣蹇椾綅錛岃繑鍥炴棫鐨勬牸寮忔爣蹇椼?/font>
long fill(char c)聽 璁劇疆濉厖瀛楃錛岀己鐪佹潯浠朵笅鏄┖鏍箋?/font>
char fill( )聽 榪斿洖褰撳墠濉厖瀛楃銆?/font>
int precision(int val)聽 璁劇疆綺劇‘搴︿負val錛屾帶鍒惰緭鍑烘誕鐐規暟鐨勬湁鏁堜綅錛岃繑鍥炴棫鍊箋?/font>
int precision( ) 榪斿洖鏃х殑綺劇‘搴﹀箋?/font>
int width(int val) 聽聽聽聽 璁劇疆鏄劇ず鏁版嵁鐨勫搴?鍩熷),榪斿洖鏃х殑鍩熷銆?/font>
int width( )聽 鍙繑鍥炲綋鍓嶅煙瀹斤紝緙虹渷瀹藉害涓?銆傝繖鏃舵彃鍏ユ搷浣滆兘鎸夎〃紺烘暟 鎹殑鏈灝忓搴︽樉紺烘暟鎹偮?/font>

棰勫畾涔夌殑鎿嶇旱綆楀瓙
聽聽聽 浣跨敤鎴愬憳鍑芥暟鎺у埗鏍煎紡鍖栬緭鍏ヨ緭鍑烘椂錛屾瘡涓嚱鏁拌皟鐢ㄩ渶瑕佸啓涓鏉¤鍙ワ紝灝ゅ叾鏄畠涓嶈兘鐢ㄥ湪鎻掑叆鎴栨彁鍙栬繍綆楃鐨勮〃杈懼紡涓紝鑰屼嬌鐢ㄦ搷綰電畻瀛愶紝鍒欏彲浠ュ湪鎻掑叆鍜屾彁鍙栬繍綆楃鐨勮〃杈懼紡涓帶鍒舵牸寮忓寲杈?/font> 鍏ュ拰杈撳嚭銆傚湪紼嬪簭涓嬌鐢ㄦ搷綰電畻瀛楀繀欏誨祵鍏ュご鏂囦歡
iomanip.h

dec 鍗佽繘鍒剁殑杈撳叆杈撳嚭
hex 鍗佸叚榪涘埗鐨勮緭鍏ヨ緭鍑?/font>
oct 聽 鍏繘鍒剁殑杈撳叆杈撳嚭
ws 聽 鎻愬彇絀虹櫧瀛楃
ends 聽 杈撳嚭涓涓猲ul瀛楃
endl 杈撳嚭涓涓崲琛屽瓧絎︼紝鍚屾椂鍒鋒柊嫻?/font>
flush 鍒鋒柊嫻?/font>
resetiosflags(long) 璇烽櫎鐗瑰畾鐨勬牸寮忔爣蹇椾綅
setiosflags(long) 璁劇疆鐗瑰畾鐨勬牸寮忔爣蹇椾綅
setfill(char) 璁劇疆濉厖瀛楃
setprecision(int) 璁劇疆杈撳嚭嫻偣鏁扮殑綺劇‘搴?/font>
setw(int) 璁劇疆鍩熷鏍煎紡鍙橀噺

鍏跺畠嫻佸嚱鏁?/font>

閿欒澶勭悊
聽聽聽 鍦ㄥ涓涓祦瀵硅薄榪涜I/O鎿嶄綔鏃訛紝鍙兘浼氫駭鐢熼敊璇傚綋閿欒鍙戠敓鏃訛紝閿欒鐨勬ц川琚褰曞湪ios綾葷殑涓涓暟鎹垚鍛樹腑銆?/font>
ios綾諱腑瀹氫箟鐨勬弿榪伴敊璇姸鎬佺殑甯擱噺:

goodbit 娌℃湁閿欒錛屾甯哥姸鎬併 eofbit 鍒拌揪嫻佺殑緇撳熬聽聽
failbit I/O鎿嶄綔澶辮觸錛屾竻闄ょ姸鎬佸瓧鍚庯紝鍙互瀵規祦緇х畫榪涜鎿嶄綔銆?/font>
badbit 璇曞浘榪涜闈炴硶鎿嶄綔錛屾竻闄ょ姸鎬佸瓧鍚庯紝嫻佸彲鑳借繕鍙互浣跨敤銆?/font>
hardfail 鑷村懡閿欒錛屼笉鍙仮澶嶇殑閿欒銆?/font>

ostream綾葷殑鎴愬憳鍑芥暟
嫻佺殑鍏跺畠鎴愬憳鍑芥暟鍙互浠庢祦涓鍙栧瓧絎︽垨瀛楃涓詫紝瀵規祦榪涜鏃犳牸寮忓寲鐨勮緭鍏?杈撳嚭鎿嶄綔錛屼互鍙婄洿鎺ユ帶鍒跺嫻佺殑I/O鎿嶄綔銆?/font>

榪斿洖綾誨瀷 ios綾葷殑鎴愬憳 鎻忋銆銆銆銆銆榪?/font>
ostream* tie(ostream*) 聽聽 灝嗗綋鍓嶆祦涓庢寚瀹氱殑杈撳嚭嫻佽繛鎺ヨ搗鏉ャ傛瘡褰撻渶瑕?璇誨彇褰撳墠嫻佹椂錛岃繛鎺ョ殑嫻佷細鑷姩鍒鋒柊銆侰++嫻佸簱宸茬敤cin.tie(cout)灝嗚緭鍏ユ祦涓庤緭鍑烘祦榪炴帴 璧鋒潵銆傝鍙栨秷涓庤緭鍑烘祦鐨勮繛鎺ュ彲閲囩敤is.tie(0)
ostream* tie( ) 榪斿洖鎸囧悜榪炴帴嫻佺殑鎸囬拡


榪斿洖綾誨瀷 ostream綾葷殑鎴愬憳 鎻忋銆銆銆銆銆榪?/font>
ostream& put(char ch) 鍚戞祦涓緭鍑轟竴涓瓧絎h錛屼笉榪涜浠諱綍杞崲
ostream& write(char*,int) 鍚戞祦涓緭鍑烘寚瀹氶暱搴︾殑瀛楃涓詫紝涓嶈繘琛岃漿鎹?/font>
ostream&聽 flush( ) 鍒鋒柊嫻侊紝杈撳嚭鎵鏈夌紦鍐茬殑浣嗚繕鏈緭鍑虹殑鏁版嵁
ostream& seekp(streampos) 縐誨姩嫻佺殑褰撳墠鎸囬拡鍒扮粰瀹氱殑緇濆浣嶇疆
ostream& seekp(sereamoff,seek_dir) 嫻佺殑褰撳墠鎸囬拡綾諱技涓庢枃浠剁殑褰撳墠鎸囬拡
streampos teelp( ) 榪斿洖嫻佺殑褰撳墠鎸囬拡鐨勭粷瀵逛綅緗?/font>

istream綾葷殑鎴愬憳鍑芥暟

榪斿洖綾誨瀷 istream綾葷殑鎴愬憳 鎻忋銆銆銆銆銆銆銆榪?/font>
int get( ) 璇誨彇騫惰繑鍥炰竴涓瓧絎?/font>
istream& get(char&c) 璇誨彇瀛楃騫跺瓨鍏涓?/font>
istream& get(char*ptr,int len,char delim='') 璇誨彇鎸囧畾鐨勫瓧絎﹀埌緙撳啿鍖轟腑錛岀洿鍒伴亣鍒版寚瀹氱殑鍒嗙晫絎︿負姝紝鍒嗙晫絎︿笉濉叆緙撳啿鍖恒?/font>
istream& getline(char*ptr,int len,char delim='') 涓巊et(char*ptr,int len,chardelim =''錛?綾諱技錛屼絾灝嗗垎鐣岀濉?/font> 鍏ョ紦鍐插尯銆?/font>
istream& putback( ) 灝嗘渶榪戣鍙栫殑瀛楃鏀懼洖嫻佷腑
istream& read(char*,int)
璇誨彇瑙勫畾闀垮害鐨勫瓧絎︿覆鍒扮紦鍐插尯涓?br />鍑芥暟gcount()榪斿洖璇誨彇鐨勫瓧鑺傛暟
int peek( )聽 榪斿洖嫻佷腑涓嬩竴涓瓧絎︼紝浣嗕笉縐誨姩鏂?/font> 浠舵寚閽?/font>
istream& seekg(streampos) 縐誨姩褰撳墠鎸囬拡鍒頒竴緇濆鍦板潃
istream&聽 seekg(streampos,seek_dir) 縐誨姩褰撳墠鎸囬拡鍒頒竴鐩稿鍦板潃
streampos tellg( ) 榪斿洖褰撳墠鎸囬拡
istream& ignore(int n=1,delim=EOF) 璺寵繃嫻佷腑鍑犱釜瀛楃錛屾垨鐩村埌閬囧埌鎸囧畾鐨勫垎鐣岀涓烘

getch()鍑芥暟鐢ㄤ簬浠庨敭鐩樿緭鍏ヤ竴涓瓧絎︼紝涓嶅洖鏄撅紝鍖呭惈澶存枃浠?lt;conio.h>涓?br />

]]>
瀛楃涓插鐞嗗嚱鏁?/title><link>http://m.shnenglu.com/lmlf001/archive/2006/04/17/5756.html</link><dc:creator>鑺ヤ箣鑸?/dc:creator><author>鑺ヤ箣鑸?/author><pubDate>Mon, 17 Apr 2006 08:05:00 GMT</pubDate><guid>http://m.shnenglu.com/lmlf001/archive/2006/04/17/5756.html</guid><wfw:comment>http://m.shnenglu.com/lmlf001/comments/5756.html</wfw:comment><comments>http://m.shnenglu.com/lmlf001/archive/2006/04/17/5756.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/lmlf001/comments/commentRss/5756.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lmlf001/services/trackbacks/5756.html</trackback:ping><description><![CDATA[char *strcpy(char *s1, const char *s2)<br />灝嗗瓧絎︿覆s2澶嶅埗鍒板瓧絎︿覆鏁扮粍s1涓紝榪斿洖s1鐨勫?br /><br />char *strncpy(char *s1, const char *s2, size_t n)聽 <br />灝嗗瓧絎︿覆s2涓渶澶歯涓瓧絎﹀鍒跺埌瀛楃涓叉暟緇剆1涓紝榪斿洖s1鐨勫?br />//褰搉 <strlen(s2)鏃訛紝緋葷粺涓嶈嚜鍔ㄥ湪s1緇撳熬娣誨姞null瀛楃<br /><br />char *strcat(char *s1, const char *s2)<br />灝嗗瓧絎︿覆s2娣誨姞鍒板瓧絎︿覆s1鐨勫悗闈€俿2鐨勭涓涓瓧絎﹂噸瀹氫箟s1鐨刵ull緇堟絎︺傝繑鍥瀞1鐨勫?br /><br />char *strncat(char *s1, const char *s2, size_t n)<br />灝嗗瓧絎︿覆s2涓渶澶歯涓瓧絎︽坊鍔犲埌瀛楃涓瞫1鐨勫悗闈€俿2鐨勭涓涓瓧絎﹂噸瀹氫箟s1鐨刵ull緇堟絎︺傝繑鍥瀞1鐨勫?br />//鍑芥暟鍦╯1緇撳熬鑷姩娣誨姞null瀛楃<br /><br />int strcmp(const char *s1, const char *s2)<br />姣旇緝瀛楃涓瞫1鍜屽瓧絎︿覆s2銆傚嚱鏁板湪s1絳変簬銆佸皬浜庢垨澶т簬s2鏃跺垎鍒繑鍥?銆佸皬浜?鎴栬呭ぇ浜?鐨勫?br /><br />int strncmp(const char *s1, const char *s2, size_t n)<br />姣旇緝瀛楃涓瞫1涓殑n涓瓧絎﹀拰瀛楃涓瞫2銆傚嚱鏁板湪s1絳変簬銆佸皬浜庢垨澶т簬s2鏃跺垎鍒繑鍥?銆佸皬浜?鎴栬呭ぇ浜?鐨勫?br /><br />char * strtok(char *s1,const char *s2)<br />鐢? 涓緋誨垪strtok璋冪敤灝唖1瀛楃涓叉爣璁板寲(灝嗗瓧絎︿覆鍒嗘垚鍚勪釜閫昏緫緇勪歡錛屽鍚屼竴琛屾枃鏈腑鐨勬瘡涓崟璇?錛岀敤瀛楃涓瞫2鎵鍖呭惈鐨勫瓧絎﹀垎闅斻傞嬈¤皟鐢ㄦ椂鍖呭惈s1 涓虹涓涓弬鏁幫紝鍚庨潰璋冪敤鏃剁戶緇爣璁板寲鍚屼竴瀛楃涓詫紝鍖呭惈NULL涓虹涓涓弬鏁般傛瘡嬈¤皟鐢ㄦ椂榪斿洖褰撳墠鏍囪鎸囬拡銆傚鏋滃嚱鏁拌皟鐢ㄦ椂涓嶅啀鏈夋洿澶氭爣璁幫紝鍒欒繑鍥濶ULL<br /><br />size_t strlen(const char *s)<br />紜畾瀛楃涓查暱搴?榪斿洖null緇堟絎︿箣鍓嶇殑瀛楃鏁奧?img src ="http://m.shnenglu.com/lmlf001/aggbug/5756.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lmlf001/" target="_blank">鑺ヤ箣鑸?/a> 2006-04-17 16:05 <a href="http://m.shnenglu.com/lmlf001/archive/2006/04/17/5756.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://344230.com" target="_blank">日韩午夜一区</a>| <a href="http://elpezomaha.com" target="_blank">亚洲一区二区三区激情</a>| <a href="http://18loutv.com" target="_blank">欧美成人免费大片</a>| <a href="http://kinghongs.com" target="_blank">久久久久久久综合日本</a>| <a href="http://2061826.com" target="_blank">久久精品91</a>| <a href="http://proenhub.com" target="_blank">久久久久久久91</a>| <a href="http://www-87633.com" target="_blank">免费毛片一区二区三区久久久</a>| <a href="http://ydy8.com" target="_blank">欧美顶级艳妇交换群宴</a>| <a href="http://596361.com" target="_blank">欧美三级视频在线播放</a>| <a href="http://tuokuba520.com" target="_blank">国产精品揄拍一区二区</a>| <a href="http://hhhh19.com" target="_blank">国模精品一区二区三区色天香</a>| <a href="http://hgx123.com" target="_blank">亚洲国产成人久久综合</a>| <a href="http://7628x.com" target="_blank">国产精品99久久久久久久vr </a>| <a href="http://tefahsop.com" target="_blank">日韩视频―中文字幕</a>| <a href="http://02326a.com" target="_blank">日韩天堂在线视频</a>| <a href="http://jxchunlong.com" target="_blank">午夜精品久久久久久久99水蜜桃</a>| <a href="http://jx963.com" target="_blank">久久久久久国产精品mv</a>| <a href="http://8bc3.com" target="_blank">欧美色图麻豆</a>| <a href="http://sauske.com" target="_blank">亚洲高清久久</a>| <a href="http://www-26333com.com" target="_blank">午夜电影亚洲</a>| <a href="http://3dmh329.com" target="_blank">亚洲高清一区二</a>| <a href="http://605799.com" target="_blank">一道本一区二区</a>| <a href="http://86868o.com" target="_blank">久久电影一区</a>| <a href="http://569658.com" target="_blank">欧美日韩一二三区</a>| <a href="http://writeingo.com" target="_blank">一区视频在线播放</a>| <a href="http://wanshunpu.com" target="_blank">亚洲尤物视频网</a>| <a href="http://aqdit2022.com" target="_blank">欧美电影在线观看完整版</a>| <a href="http://51120guahao.com" target="_blank">一区二区三区免费网站</a>| <a href="http://ca88tv.com" target="_blank">老司机午夜免费精品视频</a>| <a href="http://by3259.com" target="_blank">国产精品国内视频</a>| <a href="http://6168138.com" target="_blank">亚洲国产精品www</a>| <a href="http://72avav.com" target="_blank">欧美亚洲日本网站</a>| <a href="http://avtb2120.com" target="_blank">91久久在线播放</a>| <a href="http://rxbbei.com" target="_blank">久久婷婷综合激情</a>| <a href="http://zzzz91.com" target="_blank">国产欧美精品一区aⅴ影院</a>| <a href="http://7770790.com" target="_blank">日韩一本二本av</a>| <a href="http://goutoujunshi.com" target="_blank">噜噜噜在线观看免费视频日韩 </a>| <a href="http://3dmh329.com" target="_blank">性欧美办公室18xxxxhd</a>| <a href="http://y87b.com" target="_blank">欧美激情日韩</a>| <a href="http://430390.com" target="_blank">久久久久国产精品午夜一区</a>| <a href="http://zyjxyx.com" target="_blank">欧美性色视频在线</a>| <a href="http://sortxz.com" target="_blank">亚洲每日更新</a>| <a href="http://yjizzdizhigmail.com" target="_blank">暖暖成人免费视频</a>| <a href="http://2302345.com" target="_blank">久久国内精品视频</a>| <a href="http://353033.com" target="_blank">国产欧美三级</a>| <a href="http://zzzz80.com" target="_blank">欧美一区二区三区视频免费</a>| <a href="http://9uu91.com" target="_blank">99v久久综合狠狠综合久久</a>| <a href="http://81plas.com" target="_blank">久久人人97超碰国产公开结果 </a>| <a href="http://hcbr365.com" target="_blank">国产精品人人做人人爽</a>| <a href="http://86311ib.com" target="_blank">亚洲国产精品久久久久秋霞影院 </a>| <a href="http://wwww20.com" target="_blank">亚洲福利视频网</a>| <a href="http://85041960.com" target="_blank">欧美在线看片a免费观看</a>| <a href="http://www497171c.com" target="_blank">欧美性大战久久久久久久蜜臀</a>| <a href="http://www-663345.com" target="_blank">亚洲国产欧美日韩</a>| <a href="http://bx989.com" target="_blank">欧美国产精品</a>| <a href="http://qqcf9900.com" target="_blank">老司机午夜免费精品视频</a>| <a href="http://ccc36-com.com" target="_blank">国产私拍一区</a>| <a href="http://99cheats.com" target="_blank">欧美综合国产精品久久丁香</a>| <a href="http://dacellflex.com" target="_blank">一区二区三区高清</a>| <a href="http://345fz.com" target="_blank">国产精品亚洲第一区在线暖暖韩国</a>| <a href="http://yyypdq.com" target="_blank">亚洲视频欧美视频</a>| <a href="http://bjayj.com" target="_blank">中日韩男男gay无套</a>| <a href="http://www18bbav.com" target="_blank">欧美视频日韩视频</a>| <a href="http://lusaier.com" target="_blank">亚洲综合视频一区</a>| <a href="http://daqinhkvip.com" target="_blank">亚洲在线免费观看</a>| <a href="http://ccltb.com" target="_blank">国内成人在线</a>| <a href="http://5599912.com" target="_blank">亚洲成人在线网</a>| <a href="http://csmdjs.com" target="_blank">欧美激情四色 </a>| <a href="http://tigerpowerinc.com" target="_blank">亚洲高清123</a>| <a href="http://041935.com" target="_blank">麻豆成人av</a>| <a href="http://wallypanel.com" target="_blank">91久久在线视频</a>| <a href="http://hnautos.com" target="_blank">亚洲国产精品国自产拍av秋霞</a>| <a href="http://777888789.com" target="_blank">久久亚洲春色中文字幕</a>| <a href="http://www4411n.com" target="_blank">亚洲国产高清一区二区三区</a>| <a href="http://xsjgxx.com" target="_blank">欧美a级理论片</a>| <a href="http://67idid.com" target="_blank">欧美日韩国产色视频</a>| <a href="http://hmm47.com" target="_blank">亚洲欧美国产日韩天堂区</a>| <a href="http://5773000.com" target="_blank">亚洲女同精品视频</a>| <a href="http://ywy99.com" target="_blank">黄色亚洲精品</a>| <a href="http://wslsp.com" target="_blank">亚洲激情另类</a>| <a href="http://fjnexpo.com" target="_blank">国产精品视频精品视频</a>| <a href="http://caogb.com" target="_blank">久久亚洲美女</a>| <a href="http://62san.com" target="_blank">欧美精品久久一区二区</a>| <a href="http://lctongda.com" target="_blank">美日韩精品视频免费看</a>| <a href="http://www0505nn.com" target="_blank">欧美日韩一区在线视频</a>| <a href="http://www77577.com" target="_blank">欧美精品三级日韩久久</a>| <a href="http://haose23.com" target="_blank">国产精品成人在线观看</a>| <a href="http://394141.com" target="_blank">亚洲综合三区</a>| <a href="http://eshop999.com" target="_blank">久久久久久电影</a>| <a href="http://xxxx43.com" target="_blank">中文国产一区</a>| <a href="http://ztsctgs.com" target="_blank">午夜精品在线</a>| <a href="http://342008.com" target="_blank">99精品视频免费</a>| <a href="http://18av-2.com" target="_blank">欧美一区在线看</a>| <a href="http://baixinlocal.com" target="_blank">一本大道久久a久久精二百</a>| <a href="http://8xxjj.com" target="_blank">午夜欧美精品久久久久久久</a>| <a href="http://69jp.com" target="_blank">亚洲第一在线</a>| <a href="http://zyjdxx.com" target="_blank">亚洲欧美一区二区原创</a>| <a href="http://8p3c.com" target="_blank">亚洲美女网站</a>| <a href="http://cnlbogs.com" target="_blank">久久久久欧美精品</a>| <a href="http://5917t.com" target="_blank">性做久久久久久久免费看</a>| <a href="http://ahqdlq.com" target="_blank">欧美刺激午夜性久久久久久久</a>| <a href="http://xxav2121.com" target="_blank">亚洲欧美日韩电影</a>| <a href="http://gaobb52.com" target="_blank">亚洲欧美日韩国产综合</a>| <a href="http://yckjwb.com" target="_blank">欧美国产日韩一二三区</a>| <a href="http://goldure.com" target="_blank">欧美国产精品人人做人人爱</a>| <a href="http://wwwmm131.com" target="_blank">亚洲天堂黄色</a>| <a href="http://8181777.com" target="_blank">久久嫩草精品久久久久</a>| <a href="http://9952222.com" target="_blank">亚洲一区视频</a>| <a href="http://phitris.com" target="_blank">欧美成人激情视频</a>| <a href="http://icciran.com" target="_blank">久久精品视频导航</a>| <a href="http://phitris.com" target="_blank">欧美精品www在线观看</a>| <a href="http://www38ccc.com" target="_blank">一本色道久久99精品综合</a>| <a href="http://www333393.com" target="_blank">欧美伊人久久久久久久久影院</a>| <a href="http://9881600.com" target="_blank">日韩视频一区二区在线观看 </a>| <a href="http://951738.com" target="_blank">午夜精品免费视频</a>| <a href="http://7345jj.com" target="_blank">免费在线国产精品</a>| <a href="http://72nnnn.com" target="_blank">久久精品视频在线</a>| <a href="http://clwjbcxs.com" target="_blank">国产精品高潮呻吟</a>| <a href="http://caopormo.com" target="_blank">亚洲国产精品第一区二区三区</a>| <a href="http://jzsp94.com" target="_blank">亚洲美女黄网</a>| <a href="http://4tobi.com" target="_blank">亚洲午夜三级在线</a>| <a href="http://www930666.com" target="_blank">亚洲精品黄色</a>| <a href="http://www-663345.com" target="_blank">久久精品亚洲乱码伦伦中文</a>| <a href="http://www387333.com" target="_blank">91久久国产综合久久</a>| <a href="http://qkspvip.com" target="_blank">亚洲欧洲av一区二区</a>| <a href="http://4884888.com" target="_blank">亚洲女性裸体视频</a>| <a href="http://710557.com" target="_blank">欧美高清视频在线</a>| <a href="http://744734.com" target="_blank">欧美高清视频一区二区三区在线观看</a>| <a href="http://ll992.com" target="_blank">国产精品美女久久</a>| <a href="http://783956.com" target="_blank">亚洲精华国产欧美</a>| <a href="http://wwwsao117.com" target="_blank">樱桃视频在线观看一区</a>| <a href="http://choaoxing.com" target="_blank">午夜精品美女久久久久av福利</a>| <a href="http://www18889.com" target="_blank">亚洲午夜一区二区三区</a>| <a href="http://7504329.com" target="_blank">欧美精品日本</a>| <a href="http://erodasy.com" target="_blank">最新日韩在线视频</a>| <a href="http://y65o.com" target="_blank">99re热精品</a>| <a href="http://9113i.com" target="_blank">欧美黄在线观看</a>| <a href="http://488089.com" target="_blank">午夜视频一区在线观看</a>| <a href="http://sd-12530.com" target="_blank">日韩视频久久</a>| <a href="http://dgxinshidai.com" target="_blank">伊人久久婷婷色综合98网</a>| <a href="http://yssnlp.com" target="_blank">欧美不卡视频一区</a>| <a href="http://ju5558.com" target="_blank">欧美11—12娇小xxxx</a>| <a href="http://www-5888c.com" target="_blank">国内精品视频在线观看</a>| <a href="http://a718fun.com" target="_blank">欧美一区国产一区</a>| <a href="http://anxingou365.com" target="_blank">久久亚洲精品一区</a>| <a href="http://8181777.com" target="_blank">91久久精品www人人做人人爽</a>| <a href="http://4446666.com" target="_blank">免费观看一区</a>| <a href="http://www-33tt.com" target="_blank">亚洲人成高清</a>| <a href="http://jzsp101.com" target="_blank">亚洲午夜免费视频</a>| <a href="http://sdxinqi.com" target="_blank">国产精品影音先锋</a>| <a href="http://520taose.com" target="_blank">久久精品国产v日韩v亚洲</a>| <a href="http://nnnn34.com" target="_blank">狂野欧美激情性xxxx</a>| <a href="http://jisuyswang.com" target="_blank">91久久嫩草影院一区二区</a>| <a href="http://6aaee.com" target="_blank">欧美88av</a>| <a href="http://www92994.com" target="_blank">亚洲少妇在线</a>| <a href="http://hjk56.com" target="_blank">久久久综合精品</a>| <a href="http://6677ch.com" target="_blank">亚洲国产一区二区三区高清</a>| <a href="http://710691.com" target="_blank">欧美激情一区在线观看</a>| <a href="http://hakuihoso.com" target="_blank">欧美一区二区三区在线视频</a>| <a href="http://sepapapa8888.com" target="_blank">亚洲欧美网站</a>| <a href="http://wwwn94.com" target="_blank">国产亚洲毛片在线</a>| <a href="http://bkf23.com" target="_blank">久久免费视频在线</a>| <a href="http://xcao10.com" target="_blank">亚洲人成网站影音先锋播放</a>| <a href="http://miaoxp.com" target="_blank">一本久久a久久精品亚洲</a>| <a href="http://hznaja.com" target="_blank">国产精品高潮在线</a>| <a href="http://jsydjxgs.com" target="_blank">欧美在线3区</a>| <a href="http://1392266.com" target="_blank">欧美成人首页</a>| <a href="http://www123720a.com" target="_blank">亚洲欧美成人在线</a>| <a href="http://59jf.com" target="_blank">在线观看视频一区</a>| <a href="http://ylnnc.com" target="_blank">欧美三级在线播放</a>| <a href="http://yimeimc.com" target="_blank">久久精品国语</a>| <a href="http://jlkcjz.com" target="_blank">一区二区三区黄色</a>| <a href="http://sxhrsmjj.com" target="_blank">免费试看一区</a>| <a href="http://2cc8.com" target="_blank">午夜在线a亚洲v天堂网2018</a>| <a href="http://9xxpp.com" target="_blank">亚洲电影中文字幕</a>| <a href="http://70909g.com" target="_blank">国产精品国产三级国产aⅴ浪潮 </a>| <a href="http://uuuu30.com" target="_blank">亚洲黄色在线观看</a>| <a href="http://www-893333.com" target="_blank">亚洲影视在线</a>| <a href="http://fxsdcj.com" target="_blank">亚洲高清一区二区三区</a>| <a href="http://44368com.com" target="_blank">国产精品久久久久免费a∨</a>| <a href="http://862323.com" target="_blank">毛片av中文字幕一区二区</a>| <a href="http://f9494.com" target="_blank">亚洲欧美视频一区</a>| <a href="http://nnnn34.com" target="_blank">日韩视频在线观看免费</a>| <a href="http://1588vip.com" target="_blank">免费观看日韩av</a>| <a href="http://goldteddy.com" target="_blank">欧美在线国产</a>| <a href="http://fuwu56.com" target="_blank">亚洲午夜精品一区二区三区他趣</a>| <a href="http://26163c.com" target="_blank">在线播放中文字幕一区</a>| <a href="http://carboarm.com" target="_blank">国产精品成人观看视频国产奇米</a>| <a href="http://444yd.com" target="_blank">乱人伦精品视频在线观看</a>| <a href="http://by1422.com" target="_blank">午夜精品久久久久久</a>| <a href="http://ctmhotel.com" target="_blank">亚洲美女网站</a>| <a href="http://nxhjzddata.com" target="_blank">欧美激情一区二区久久久</a>| <a href="http://48488a.com" target="_blank">久久久国产精彩视频美女艺术照福利</a>| <a href="http://wwwavtb1122.com" target="_blank">av成人免费</a>| <a href="http://llyx888.com" target="_blank">亚洲巨乳在线</a>| <a href="http://hbdxzx.com" target="_blank">亚洲国产三级网</a>| <a href="http://ztqsfw.com" target="_blank">伊人狠狠色丁香综合尤物</a>| <a href="http://www888x.com" target="_blank">国产欧美日韩三级</a>| <a href="http://aqxiangtai.com" target="_blank">国产精品久久久久久久久免费桃花</a>| <a href="http://302262.com" target="_blank">免费日韩av电影</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>