锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩国产精品一区,国产日韩欧美在线播放,亚洲国产精品成人http://www.shnenglu.com/ownwaterloo/zh-cnTue, 30 Sep 2025 02:04:37 GMTTue, 30 Sep 2025 02:04:37 GMT60C涓嶤++鐨勭粏寰尯鍒斺旂渷鐣ュ艦寮忓弬鏁板悕http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_parameter_name.htmlOwnWaterlooOwnWaterlooSun, 26 Apr 2009 07:01:00 GMThttp://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_parameter_name.htmlhttp://www.shnenglu.com/ownwaterloo/comments/81117.htmlhttp://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_parameter_name.html#Feedback5http://www.shnenglu.com/ownwaterloo/comments/commentRss/81117.htmlhttp://www.shnenglu.com/ownwaterloo/services/trackbacks/81117.html
鍦ㄥ嚱鏁板0鏄庝腑錛?br>鏃犺鏄疌榪樻槸鍦–++錛岄兘鍙互鐪佺暐褰㈠紡鍙傛暟鍚嶃?br>浣嗘槸錛岄氬父閮?strong>涓?/span>寤鴻鐪佺暐褰㈠紡鍙傛暟鍚嶃?br>
鍦ㄥ嚱鏁板畾涔変腑錛?br>1. 褰撻渶瑕佷嬌鐢ㄥ艦寮忓弬鏁扮殑鏃跺欙紝鏄劇劧錛屽繀欏葷粰褰㈠紡鍙傛暟鍛藉悕銆?br>
2. 褰撲笉闇瑕佷嬌鐢ㄥ艦寮忓弬鏁扮殑鏃跺欙紝C涓嶤++鏈夊井灝忓樊寮傦細
鈥斺?C涓嶈兘鐪佺暐褰㈠紡鍙傛暟鍚?/strong>錛?鍗充嬌涓嶄嬌鐢ㄣ?br>鈥斺?C++鍙互鐪佺暐褰㈠紡鍙傛暟鍚?/strong>錛?strong style="COLOR: red">濡傛灉涓嶄嬌鐢ㄣ?br>鈥斺?騫朵笖鍦–++涓紝濡傛灉緇欎笉浣跨敤鐨勫艦寮忓弬鏁板懡鍚嶏紝鍙兘浼氬緱鍒頒竴涓?strong>璀﹀憡銆?br>


浜屻佺ず渚嬶細
#include <stdio.h>

void greeting_omit(const char* name);
void greeting_unuse(const char* name);
void greeting_nowarning(const char* name);

int main(void) {
    greeting_omit(
"");
    greeting_unuse(
"");
    greeting_nowarning(
"");
    (
void)getchar();
    
return 0;
}



涓夈佷笁涓嚱鏁板垎鍒疄鐜板涓嬶細

        涓夈?
void greeting_omit(const char* ) {
    printf(
"hello world\n");
}

鈥斺斿湪C涓槸閿欒錛?br>1. msvc :
error C2055: expected formal parameter list, not a type list
error C2055: 搴旇緭鍏ュ艦鍙傝〃錛岃屼笉鏄被鍨嬭〃

2. gcc : 錛堟姤閿欐洿娓呮櫚涓浜涳級
error: parameter name omitted
閿欒錛?鐪佺暐鍙傛暟鍚?br>
鈥斺斿湪C++涓紜紝涓旀棤璀﹀憡銆?br>
        涓夈?
void greeting_unuse(const char* name) {
    printf(
"hello Cherrie\n");
}

鍦–鍜孋++涓兘姝g‘錛屼絾鍙兘寰楀埌涓涓鍛婏細
1. msvc :
warning C4100: 'name' : unreferenced formal parameter
warning C4100: “name”: 鏈紩鐢ㄧ殑褰㈠弬

2. gcc :
warning: unused parameter 'name'
璀﹀憡錛?鏈嬌鐢ㄧ殑鍙傛暟‘name’

鍦╣cc涓紝鎵撳紑榪欎釜璀﹀憡鐨勯夐」鏄?strong>-Wunused-parameter銆?br>璇ラ夐」鍖呭惈鍦?Wall涓?br>
        涓夈?
void greeting_nowarning(const char* name) {
    (
void)name;
    printf(
"hello OwnWaterloo\n");
}

鍦–鍜孋++涓兘姝g‘錛屽茍涓旀棤璀﹀憡銆?br>


鐩稿叧閾炬帴錛?br>
鈥斺旂ず渚嬩唬鐮?br>http://immature.googlecode.com/svn/trunk/iMmature/sample/omit_parameter_name



Creative Commons License
鏈?span rel="dc:type" xmlns:dc="http://purl.org/dc/elements/1.1/">浣滃搧
閲囩敤鐭ヨ瘑鍏變韓緗插悕-闈炲晢涓氭т嬌鐢?鐩稿悓鏂瑰紡鍏變韓 2.5 涓浗澶ч檰璁稿彲鍗忚榪涜璁稿彲銆?

杞澆璇鋒敞鏄?錛?br>鏂囩珷浣滆?- OwnWaterloo
鍙戣〃鏃墮棿 - 2009騫?4鏈?6鏃?br>鍘熸枃閾炬帴 - http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_parameter_name.html

]]>
main鍑芥暟涓渷鐣ヨ繑鍥炶鍙?/title><link>http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_return_in_main.html</link><dc:creator>OwnWaterloo</dc:creator><author>OwnWaterloo</author><pubDate>Sun, 26 Apr 2009 06:37:00 GMT</pubDate><guid>http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_return_in_main.html</guid><wfw:comment>http://www.shnenglu.com/ownwaterloo/comments/81116.html</wfw:comment><comments>http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_return_in_main.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/ownwaterloo/comments/commentRss/81116.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ownwaterloo/services/trackbacks/81116.html</trackback:ping><description><![CDATA[<p>涓銆佷緷鎹?br><br>C++鏍囧噯瑙勫畾錛歮ain鍑芥暟鍙互鐪佺暐榪斿洖璇彞錛岀瓑鏁堜簬榪斿洖0銆?br><br>5. A return statement in main has the effect of leaving the main function (destroying any objects with automatic storage duration) and calling exit with the return value as the argument.<br>If control reaches the end of main without encountering a return statement, the effect is that of executing<br>return 0;</p> <p>                鈥斺擨SO C++03 3.6.1 Main function p44/72<br>                鈥斺擨SO C++98 3.6.1 Main function p43/69<br><br>娉ㄦ剰錛?br>1. main鍑芥暟鐨勮繑鍥炵被鍨嬫槸<strong style="COLOR: #0000ff">int</strong>錛?涓嶆槸void鎴栬呭叾浠栫被鍨嬨?br>2. 璇ヨ鍒?strong>浠呬粎</strong>瀵筸ain鍑芥暟閫傜敤銆?br>3. 瀵瑰叾浠栧嚱鏁幫紝濡傛灉鐪佺暐榪斿洖鍊鹼紝 灝嗗緱鍒頒竴涓?strong>璀﹀憡</strong>銆?br>4. 搴旇<strong>閬垮厤</strong>3鐨勬儏鍐點?br><br><br> <hr width="80%"> <br>浜屻?nbsp;紺轟緥<br><br>        浜屻?. 涓涓悎娉曠殑鏈灝忓寲鐨勫畬鏁碈++紼嬪簭濡備笅錛? <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> main() {}</span></div> <br>        浜屻?. 鐪佺暐鐨勭‘鍒囧惈涔?br><br>鍚屾椂錛屾爣鍑嗕腑鐨勭敤璇槸寰?strong>鑰冪┒</strong>鐨勶細<br>“褰撴帶鍒跺埌杈緈ain緇撴潫澶勬椂娌℃湁閬囧埌return璇彞錛屾晥鏋滀笌榪斿洖0鐩稿悓”銆?br><br>鍗蟲槸璇達紝鏍囧噯瑙勫畾鐨勬槸“瀵圭渷鐣eturn鐨?strong style="COLOR: #ff0000">鍒嗘敮</strong>錛岃涓鴻繑鍥?”銆?br>鍚屾椂錛屾爣鍑嗕篃鍏佽<strong>鍏朵粬鍒嗘敮</strong>鍚湁榪斿洖璇彞銆?br>濡備笅錛? <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> argc,</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> []) {<br>    </span><span style="COLOR: #0000ff">switch</span><span style="COLOR: #000000"> (argc)<br>    {<br>    </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">:<br>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> error, should passing argument</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> parse arguments</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">default</span><span style="COLOR: #000000">:<br>    </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">: </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> parser argv[2]</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">: </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> parser argv[1]</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">        ;<br>    }<br>    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> do some work<br>    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> control reaches <strong style="COLOR: #ff0000">here</strong></span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">}</span></div> <br>娌℃湁杈撳叆鍛戒護琛屽弬鏁版椂錛?榪斿洖涓涓敊璇?br>鍏朵粬鎯呭喌錛屽綋鎺у埗杈懼埌main鐨?strong>緇撳熬</strong>澶勬椂錛屾晥鏋滃悓return 0;<br><br>        浜屻?. 瀵逛簬鍏朵粬鍑芥暟錛屾病鏈夎繖縐?#8220;浼樺緟”<br>濡傦細<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> not_main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> argc) {<br>    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (argc</span><span style="COLOR: #000000"><=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>}<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> argc,</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> []) {<br>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> not_main(argc);<br>}</span></div> <br>not_main鏃犵枒灝嗗緱鍒頒竴涓鍛娿?br>紼嬪簭鍦ㄦ病鏈夎緭鍏ュ懡浠よ鍙傛暟鏃剁殑榪斿洖鍊煎皢<strong><span style="COLOR: #ff0000">鏃犳硶</span>棰勭煡</strong>銆?br><br> <hr width="80%"> <br>涓夈侀獙璇?br><br>        涓夈?. ERRORLEVEL<br><br>windows涓嬶紝鍙互閫氳繃 %<strong>ERRORLEVEL</strong>% 鏌ヨ涓婁竴嬈$▼搴忚繑鍥炲箋?br><br>緇撴灉涓庡垽鏂浉鍚誨悎錛?br>1. minimalist鏈?strong>紜畾</strong>鐨勮繑鍥炲?<br>2. omit_return_in_main鏈?strong>紜畾</strong>鐨勮繑鍥炲?1鎴?<br>3. 瀵筼mit_return_in_other<br>3.1 鏈夊懡浠よ鍙傛暟鏃訛紝榪斿洖鍊?strong>紜畾</strong>涓?銆?br>3.2 鏃犲懡浠よ鍙傛暟鏃訛紝榪斿洖鍊?strong><span style="COLOR: #ff0000">鏃犳硶</span>棰勭煡</strong>銆? <p><br>        涓夈? 姹囩紪浠g爜<br><br>鏇翠弗璋ㄧ殑楠岃瘉鏂規硶鏄煡鐪嬫眹緙栦唬鐮併?br><br>鍙互鐪嬪埌錛屽湪minimalist涓巓mit_return_in_main鐨刴ain鍑芥暟涓兘鏈夊皢eax緗?鐨勪唬鐮併?br>鍦╫mit_return_in_other涓殑not_main鍑芥暟涓紝娌℃湁榪欐牱鐨勪唬鐮併?/p> <p><br> <hr width="80%"> <br>鍥涖?nbsp;渚嬪<br><br><strong>VC6</strong>鍦ㄨ繖鐐逛笂涓庢爣鍑嗕笉絎︺?br><br>        鍥涖?. 瀵筼mit_return_in_main錛屽畠緇欏嚭鐨勮鍛婏細<br><br>warning C4715: 'main' : not all control paths return a value<br><br>璇存槑瀹冨湪榪欑偣涓婁笌鏍囧噯涓嶇銆?br>鏄劇劧錛屽湪鏈夊懡浠よ鍙傛暟鐨勬椂鍊欙紝紼嬪簭緇撴灉<strong><span style="COLOR: #ff0000">鏃犳硶</span>棰勭煡</strong>銆?br><br><br>        鍥涖?. 瀵筸inimalist錛屽畠緇欏嚭鐨勮鍛婂緢鎼炵瑧錛?br><br>warning C4508: 'main' : function should return a value; <strong>'void' return type <span style="COLOR: #ff0000">assumed</span></strong><br><br>鏆撮湶鍑哄畠鍙︿竴涓?strong>涓庢爣鍑嗕笉絎?/strong>鐨勫湴鏂光斺攎ain榪斿洖void銆?br>鏄劇劧錛屼換浣曟儏鍐典笅錛岀▼搴忕粨鏋滈兘<strong>鏃犳硶棰勭煡</strong>銆?br><br>        鍥涖?. 瀵筼mit_return_in_other錛屾槸紼嬪簭鍛樼殑閿欒銆?br><br><br> <hr width="80%"> <br>浜斻?瀹炶返<br><br>涓嶇煡閬撲負浠涔圕++鏍囧噯鍦ㄨ繖閲屽紑涓涓?#8220;鍚庨棬”銆?br>鈥斺擟++鍦ㄨ澶氬湴鏂歸兘鏄緢<strong>涓ヨ皚</strong>鐨勩?br><br>鍦ㄥ疄闄呭簲鐢ㄤ腑錛屽敖閲忎笉瑕侀噰鐢ㄨ繖涓鐗規э紝 鍥犱負錛?br>1. 鏃х紪璇戝櫒涓嶆敮鎸?br>2. C涓嶆敮鎸佲斺斿鏋滃笇鏈沵ain鑳藉悓鏃舵寜C璇█緙栬瘧鐨勮瘽<br><br>瀵逛簬<strong>婕旂ず</strong>鐢ㄧ殑C++浠g爜錛屼笌涓婚鏃犲叧鐨勪唬鐮佽鑳界渷鍒欑渷錛屽垯鍙互浣跨敤榪欎竴鐗規с?br>姣斿錛欳++鏍囧噯涓殑紺轟緥浠g爜鍑犱箮閮介噰鐢ㄤ簡榪欎竴鐗規с?br>鐢辨鍙緱鍑猴紝C++鏍囧噯鍦ㄨ繖閲屽紑鍚庨棬鐨勫師鍥犳槸鈥斺旇C++鏍囧噯鏇磋杽^_^<br><br> <hr width="90%"> <br>鐩稿叧閾炬帴錛?br><br>鈥斺旂ず渚嬩唬鐮?br><a >http://immature.googlecode.com/svn/trunk/iMmature/sample/omit_return_in_main<br><br></a> <hr width="90%"> <p><br><a rel=license><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt="Creative Commons License" src="http://i.creativecommons.org/l/by-nc-sa/2.5/cn/88x31.png"></a><br>鏈?span xmlns:dc="http://purl.org/dc/elements/1.1/" rel="dc:type">浣滃搧</span>閲囩敤<a rel=license>鐭ヨ瘑鍏變韓緗插悕-闈炲晢涓氭т嬌鐢?鐩稿悓鏂瑰紡鍏變韓 2.5 涓浗澶ч檰璁稿彲鍗忚</a>榪涜璁稿彲銆?<br><br>杞澆璇鋒敞鏄?錛?br>鏂囩珷浣滆?- OwnWaterloo<br>鍙戣〃鏃墮棿 - 2009騫?4鏈?6鏃?br>鍘熸枃閾炬帴 - <a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_return_in_main.html">http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_return_in_main.html</a></p> <img src ="http://www.shnenglu.com/ownwaterloo/aggbug/81116.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ownwaterloo/" target="_blank">OwnWaterloo</a> 2009-04-26 14:37 <a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_return_in_main.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍙彉闀垮弬鏁板垪琛ㄨ鍖轟笌闄烽槺鈥斺攙a_arg涓嶅彲鎺ュ彈鐨勭被鍨?/title><link>http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/unacceptable_type_in_va_arg.html</link><dc:creator>OwnWaterloo</dc:creator><author>OwnWaterloo</author><pubDate>Tue, 21 Apr 2009 15:41:00 GMT</pubDate><guid>http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/unacceptable_type_in_va_arg.html</guid><wfw:comment>http://www.shnenglu.com/ownwaterloo/comments/80655.html</wfw:comment><comments>http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/unacceptable_type_in_va_arg.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.shnenglu.com/ownwaterloo/comments/commentRss/80655.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ownwaterloo/services/trackbacks/80655.html</trackback:ping><description><![CDATA[瀹炵幇涓涓湁鍙彉闀垮弬鏁板垪琛ㄥ嚱鏁扮殑鏃跺欙紝浼氫嬌鐢ㄥ埌stdarg.h錛堣繖閲屼笉璁ㄨvarargs.h錛変腑鎻愪緵鐨勫畯銆?br><br>渚嬪錛屾垜浠瀹炵幇涓涓畝鏄撶殑my_printf錛?br>1. 瀹冨彧榪斿洖void錛?涓嶈褰曡緭鍑虹殑瀛楃鏁扮洰<br>2. 瀹冨彧鎺ュ彈"%d"鎸夋暣鏁拌緭鍑恒?%c"鎸夊瓧絎﹁緭鍑恒?%%"杈撳嚭'%'鏈韓<br>濡備笅錛?br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span> <span style="COLOR: #000000">#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">stdarg.h</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 2</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 3</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> my_printf(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> fmt, ... )<br></span><span style="COLOR: #008080"> 4</span> <span style="COLOR: #000000">{<br></span><span style="COLOR: #008080"> 5</span> <span style="COLOR: #000000">    <span style="COLOR: #0000ff">va_list</span> ap;<br></span><span style="COLOR: #008080"> 6</span> <span style="COLOR: #000000">    <span style="COLOR: #ff00ff">va_start</span>(ap,fmt); </span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"> 鐢ㄦ渶鍚庝竴涓叿鏈夊弬鏁扮殑綾誨瀷鐨勫弬鏁板幓鍒濆鍖朼p </span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 7</span> <span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">fmt;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">fmt)<br></span><span style="COLOR: #008080"> 8</span> <span style="COLOR: #000000">    {<br></span><span style="COLOR: #008080"> 9</span> <span style="COLOR: #000000">        </span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"> 濡傛灉涓嶆槸鎺у埗瀛楃 </span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">fmt</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">11</span> <span style="COLOR: #000000">        {<br></span><span style="COLOR: #008080">12</span> <span style="COLOR: #000000">            putchar(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">fmt); </span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"> 鐩存帴杈撳嚭 </span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">13</span> <span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">continue</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">14</span> <span style="COLOR: #000000">        }<br></span><span style="COLOR: #008080">15</span> <span style="COLOR: #000000">        </span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"> 濡傛灉鏄帶鍒跺瓧絎︼紝鏌ョ湅涓嬩竴瀛楃 </span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">16</span> <span style="COLOR: #000000">        </span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">fmt;<br></span><span style="COLOR: #008080">17</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">\0</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">==*</span><span style="COLOR: #000000">fmt) </span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"> 濡傛灉鏄粨鏉熺 </span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">18</span> <span style="COLOR: #000000">        {<br></span><span style="COLOR: #008080">19</span> <span style="COLOR: #000000">            assert(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);  </span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"> 榪欐槸涓涓敊璇?nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">20</span> <span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">21</span> <span style="COLOR: #000000">        }<br></span><span style="COLOR: #008080">22</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">switch</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">fmt)<br></span><span style="COLOR: #008080">23</span> <span style="COLOR: #000000">        {<br></span><span style="COLOR: #008080">24</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">: </span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"> 榪炵畫2涓?%'杈撳嚭1涓?%' </span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">25</span> <span style="COLOR: #000000">            putchar(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">26</span> <span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">27</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">d</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">: </span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"> 鎸夌収int杈撳嚭 </span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">28</span> <span style="COLOR: #000000">            {<br></span><span style="COLOR: #008080">29</span> <span style="COLOR: #000000">                </span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"> 涓嬩竴涓弬鏁版槸int錛屽彇鍑?nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">30</span> <span style="COLOR: #000000">                </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> <span style="COLOR: #ff00ff">va_arg</span>(ap,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">31</span> <span style="COLOR: #000000">                printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,i);<br></span><span style="COLOR: #008080">32</span> <span style="COLOR: #000000">            }<br></span><span style="COLOR: #008080">33</span> <span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">34</span> <span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">c</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">: </span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"> 鎸夌収瀛楃杈撳嚭 </span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">35</span> <span style="COLOR: #000000">            {<br></span><span style="COLOR: #008080">36</span> <span style="COLOR: #000000">                </span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">* <span style="COLOR: #ff0000">浣嗘槸錛屼笅涓涓弬鏁版槸char鍚?/span></span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">37</span> <span style="COLOR: #000000">                </span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">  <span style="COLOR: #ff0000">鍙互榪欐牱鍙栧嚭鍚?/span>錛?nbsp;</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">38</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"> <span style="COLOR: #ff00ff">va_arg</span>(ap,</span><span style="COLOR: #ff0000"><strong>char</strong></span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">39</span> <span style="COLOR: #000000">                printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%c</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,c);<br></span><span style="COLOR: #008080">40</span> <span style="COLOR: #000000">            }<br></span><span style="COLOR: #008080">41</span> <span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">43</span> <span style="COLOR: #000000">        }<br></span><span style="COLOR: #008080">44</span> <span style="COLOR: #000000">    }<br></span><span style="COLOR: #008080">45</span> <span style="COLOR: #000000">    <span style="COLOR: #ff00ff">va_end</span>(ap);  </span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"> <strong style="COLOR: #ff0000">閲婃斁</strong>ap鈥斺?<strong><font color=#ff0000>蹇呴』錛?/font></strong> 瑙?strong>鐩稿叧閾炬帴</strong></span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">46</span> <span style="COLOR: #000000">}</span></div> <br><br>榪欎笌銆奀++紼嬪簭璁捐璇█銆嬩腑鐨勪竴閬撶粌涔犻寰堢被浼箋?br>鈥斺旈渶瑕佹敮鎸?%c"鎺у埗絎?br><br>鍦ㄣ奀++紼嬪簭璁捐璇█-棰樿В銆嬩腑錛岀粰鍑轟簡涓涓瓟妗堬紙涓枃p65欏碉級銆?br>浣嗘槸錛?<strong>濡傚悓涓婇潰鐨勪唬鐮佷竴鏍?/strong>錛屽畠浠兘鏄?strong style="COLOR: #ff0000">閿欒</strong>鐨勶紒<br><br><br> <hr width="80%"> <br><br>綆鍗曠殑璇達紝鎴戜滑鐢?span style="COLOR: #ff00ff">va_arg</span>(<span style="COLOR: #666699">ap</span>,<span style="COLOR: #0000ff">type</span>)鍙栧嚭涓涓弬鏁扮殑鏃跺欙紝<br><strong><span style="COLOR: #0000ff">type</span><span style="COLOR: #ff0000">緇?/span>瀵逛笉鑳戒負</strong>浠ヤ笅綾誨瀷錛?br>鈥斺?span style="COLOR: #0000ff"><strong>char</strong></span>銆?span style="COLOR: #0000ff">signed</span> <span style="COLOR: #0000ff"><strong>char</strong></span>銆?span style="COLOR: #0000ff">unsigned</span> <span style="COLOR: #0000ff"><strong>char</strong></span><br>鈥斺?span style="COLOR: #0000ff"><strong>short</strong></span>銆?span style="COLOR: #0000ff">unsigned</span> <span style="COLOR: #0000ff"><strong>short</strong></span><br>鈥斺?span style="COLOR: #0000ff">signed</span> <span style="COLOR: #0000ff"><strong>short</strong></span>銆?span style="COLOR: #0000ff"><strong>short</strong></span> <span style="COLOR: #0000ff">int</span>銆?span style="COLOR: #0000ff">signed</span> <span style="COLOR: #0000ff"><strong>short</strong></span> <span style="COLOR: #0000ff">int</span>銆?span style="COLOR: #0000ff">unsigned</span> <span style="COLOR: #0000ff"><strong>short</strong></span> <span style="COLOR: #0000ff">int</span><br>鈥斺?span style="COLOR: #0000ff"><strong>float</strong></span><br><br><br>涓涓畝鍗曠殑鐞嗙敱鏄細<br>鈥斺?strong>璋冪敤鑰?span style="COLOR: #ff0000">緇濆涓?/span>浼?/strong>鍚?span style="COLOR: #993300">my_printf</span><strong>浼犻?/strong>浠ヤ笂綾誨瀷鐨?strong>瀹為檯鍙傛暟</strong>銆?br><br><br>鍦–璇█涓紝璋冪敤涓涓笉甯﹀師鍨嬪0鏄庣殑鍑芥暟鏃訛細<br>璋冪敤鑰呬細瀵?strong>姣忎釜</strong>鍙傛暟鎵ц“榛樿瀹為檯鍙傛暟<strong>鎻愬崌</strong>(default argument <strong>promotions</strong>)”銆?br><br>鍚屾椂錛屽鍙彉闀垮弬鏁板垪琛?strong>瓚呭嚭鏈鍚庝竴涓?/strong>鏈?strong>綾誨瀷澹版槑鐨勫艦寮忓弬鏁?/strong>涔嬪悗鐨?strong>姣忎竴涓疄闄呭弬鏁?/strong>錛屼篃灝嗘墽琛屼笂榪版彁鍗囧伐浣溿?br>鎻愬崌宸ヤ綔濡備笅錛?br>鈥斺攆loat綾誨瀷鐨勫疄闄呭弬鏁板皢鎻愬崌鍒癲ouble<br>鈥斺攃har銆乻hort鍜岀浉搴旂殑signed銆乽nsigned綾誨瀷鐨勫疄闄呭弬鏁版彁鍗囧埌int<br>鈥斺斿鏋渋nt涓嶈兘瀛樺偍鍘熷鹼紝鍒欐彁鍗囧埌unsigned int<br><br>鐒跺悗錛岃皟鐢ㄨ呭皢<strong>鎻愬崌鍚?/strong>鐨勫弬鏁?strong>浼犻?/strong>緇欒璋冪敤鑰呫?br>鎵浠ワ紝my_printf鏄?strong>緇濆鏃犳硶鎺ユ敹鍒?/strong>涓婅堪綾誨瀷鐨勫疄闄呭弬鏁扮殑銆?br><br><br> <hr width="80%"> <br>涓婇潰鐨勪唬鐮佺殑38涓?9琛岋紝搴旇鏀逛負錛?br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> c </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> <span style="COLOR: #ff00ff">va_arg</span>(ap,</span><span style="COLOR: #0000ff"><strong>int</strong></span><span style="COLOR: #000000">);<br>printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%c</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,c);</span></div> <br>鍚岀悊錛?濡傛灉闇瑕佷嬌鐢╯hort鍜宖loat錛?涔熷簲璇ヨ繖鏍鳳細<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000"> s </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">)va_arg(ap,</span><span style="COLOR: #0000ff"><strong>int</strong></span><span style="COLOR: #000000">);<br></span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> f </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000">)va_arg(ap,</span><span style="COLOR: #0000ff"><strong>double</strong></span><span style="COLOR: #000000">);</span></div> <br>榪欎篃鏄痯rintf鏃忓嚱鏁版病鏈夌敤浜巗hort鍜宖loat鐨勬帶鍒剁鐨勫師鍥犮?br><br> <hr width="90%"> <br>闄勫綍錛?br><br>鍦ㄣ奀璇█紼嬪簭璁捐銆嬪鍙彉闀垮弬鏁板垪琛ㄧ殑鐩稿叧绔犺妭涓紝騫舵病鏈夋彁鍒拌繖涓櫡闃便?br>浣嗘槸鏈夋彁鍒伴粯璁ゅ疄闄呭弬鏁版彁鍗囩殑瑙勫垯錛?br><br>鍦ㄦ病鏈夊嚱鏁板師鍨嬬殑鎯呭喌涓嬶紝char涓巗hort綾誨瀷閮藉皢琚漿鎹負int綾誨瀷錛宖loat綾誨瀷灝嗚杞崲涓篸ouble綾誨瀷銆?br>                鈥斺斻奀璇█紼嬪簭璁捐銆嬬2鐗? 2.7 綾誨瀷杞崲 p36<br><br><br><br>鍦ㄥ叾浠栦竴浜涗功綾嶄腑錛屼篃鏈夋彁鍒拌繖涓鍒欙細<br><br><br>浜嬫儏寰堟竻妤氾紝濡傛灉涓涓弬鏁版病鏈夊0鏄庯紝緙栬瘧鍣ㄥ氨娌℃湁淇℃伅鍘誨瀹冩墽琛屾爣鍑嗙殑綾誨瀷媯鏌ュ拰杞崲銆?br>鍦ㄨ繖縐嶆儏鍐典笅錛屼竴涓猚har鎴杝hort灝嗕綔涓篿nt浼犻掞紝float灝嗕綔涓篸ouble浼犻掋?br>榪欎簺鍋氭湭蹇呮槸紼嬪簭鍛樻墍鏈熸湜鐨勩?br>鑴氭敞錛氳繖浜涢兘鏄敱C璇█緇ф壙鏉ョ殑鏍囧噯鎻愬崌銆?br>瀵逛簬鐢辯渷鐣ュ彿琛ㄧず鐨勫弬鏁幫紝鍏跺疄闄呭弬鏁板湪浼犻掍箣鍓嶆繪墽琛岃繖浜涙彁鍗囷紙濡傛灉瀹冧滑灞炰簬闇瑕佹彁鍗囩殑綾誨瀷錛夛紝灝嗘彁鍗囧悗鐨勫間紶閫掔粰鏈夊叧鐨勫嚱鏁般傗斺旇瘧鑰呮敞<br>                鈥斺斻奀++紼嬪簭璁捐璇█銆嬬3鐗?鐗瑰埆鐗?7.6 p138<br><br>…… float綾誨瀷鐨勫弬鏁頒細鑷姩杞崲涓篸ouble綾誨瀷錛宻hort鎴朿har綾誨瀷鐨勫弬鏁頒細鑷姩杞崲涓篿nt綾誨瀷 ……<br>                鈥斺斻奀闄烽槺涓庣己闄楓?4.4 褰㈠弬銆佸疄鍙備笌榪斿洖鍊?p73<br><br><br>榪欓噷鏈変竴涓櫡闃遍渶瑕侀伩鍏嶏細<br>va_arg瀹忕殑絎?涓弬鏁頒笉鑳借鎸囧畾涓?strong>char</strong>銆?strong>short</strong>鎴栬?strong>float</strong>綾誨瀷銆?br>鍥犱負char鍜宻hort綾誨瀷鐨勫弬鏁頒細琚漿鎹負int綾誨瀷錛岃宖loat綾誨瀷鐨勫弬鏁頒細琚漿鎹負double綾誨瀷 ……<br>渚嬪錛岃繖鏍峰啓<strong>鑲畾鏄笉瀵?/strong>鐨勶細<br>c = va_arg(ap,char);<br>鍥犱負鎴戜滑鏃犳硶浼犻掍竴涓猚har綾誨瀷鍙傛暟錛屽鏋滀紶閫掍簡錛屽畠灝嗕細琚嚜鍔ㄨ漿鍖栦負int綾誨瀷銆備笂闈㈢殑寮忓瓙搴旇鍐欐垚錛?br>c = va_arg(ap,int);<br>                鈥斺斻奀闄烽槺涓庣己闄楓媝164<br><br> <hr width="90%"> <br>2009/05/07 淇敼錛?br>printf鍑芥暟鏃忔湁鐢ㄤ簬short鐨勬帶鍒剁“h”銆?br>瑙侊細<a ><u><font color=#0000ff>http://www.cplusplus.com/reference/clibrary/cstdio/printf/</font></u></a><br><br> <hr width="90%"> <br>鐩稿叧閾炬帴錛?br><br>鈥斺斻婂彲鍙橀暱鍙傛暟鍒楄〃璇尯涓庨櫡闃扁斺攙a_end鏄繀欏葷殑鍚楋紵銆?br><a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/is_va_end_necessary.html">http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/is_va_end_necessary.html</a><br><br> <hr width="90%"> <br><br><a rel=license><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt="Creative Commons License" src="http://i.creativecommons.org/l/by-nc-sa/2.5/cn/88x31.png"></a><br><br>鏈?span rel="dc:type" xmlns:dc="http://purl.org/dc/elements/1.1/">浣滃搧</span>閲囩敤<a rel=license>鐭ヨ瘑鍏變韓緗插悕-闈炲晢涓氭т嬌鐢?鐩稿悓鏂瑰紡鍏變韓 2.5 涓浗澶ч檰璁稿彲鍗忚</a>榪涜璁稿彲銆?<br> <p>杞澆璇鋒敞鏄?錛?br>鏂囩珷浣滆?- OwnWaterloo<br>鍙戣〃鏃墮棿 - 2009騫?4鏈?1鏃?br>鍘熸枃閾炬帴 - <a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/unacceptable_type_in_va_arg.html">http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/unacceptable_type_in_va_arg.html</a></p> <img src ="http://www.shnenglu.com/ownwaterloo/aggbug/80655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ownwaterloo/" target="_blank">OwnWaterloo</a> 2009-04-21 23:41 <a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/unacceptable_type_in_va_arg.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍙彉闀垮弬鏁板垪琛ㄨ鍖轟笌闄烽槺鈥斺攙a_end鏄繀欏葷殑鍚楋紵http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/is_va_end_necessary.htmlOwnWaterlooOwnWaterlooTue, 21 Apr 2009 07:53:00 GMThttp://www.shnenglu.com/ownwaterloo/archive/2009/04/21/is_va_end_necessary.htmlhttp://www.shnenglu.com/ownwaterloo/comments/80616.htmlhttp://www.shnenglu.com/ownwaterloo/archive/2009/04/21/is_va_end_necessary.html#Feedback2http://www.shnenglu.com/ownwaterloo/comments/commentRss/80616.htmlhttp://www.shnenglu.com/ownwaterloo/services/trackbacks/80616.html榪欐湰搴旀槸涓涓棤欏諱簤璁虹殑闂鈥斺斿綋鐒跺繀欏昏皟鐢ㄣ?br>
stdarg錛堟垨varargs錛屼笅鐣ワ級涓彁渚涚殑鍔熻兘灝辨槸涓縐?strong style="COLOR: red">濂戠害錛?br>“浣犳寜鎴戠殑綰﹀畾鏂瑰紡浣跨敤榪欎簺瀹?br>鈥斺斿嵆蹇呴』璋冪敤va_end
鈥斺旀垜灝辯粰浣犳彁渚涘疄鐜板彲鍙橀暱鍙傛暟鍒楄〃鎵闇瑕佺殑鍔熻兘銆?#8221;


浣跨敤stdarg鏈潵鏄?strong>寰?span style="COLOR: red">綆鍗?/span>鐨勪簨鎯?br>鈥斺?strong>鎸夌収涓涓畝鍗曠殑濂戠害錛堝彟瑙佺浉鍏抽摼鎺ワ級鍔炰簨灝卞彲浠ヤ簡
鈥斺旀牴鏈棤欏諱簡瑙e叾鍏蜂綋瀹炵幇銆?br>
鏈変漢涔愭剰鍘葷爺絀惰鍔熻兘鏄浣曞疄鐜扮殑錛?涔熷緢濂姐?br>

鍙槸鏌愪簺浜?br>鈥斺旀垨閫氳繃鐮旂┒鍏剁殑瀹炵幇錛屾垨閫氳繃瀹炶返
鈥斺斿彂鐜頒粬鎵浣跨敤鐨勫鉤鍙頒笅錛?va_end鏄彲浠ュ拷鐣ョ殑銆?br>涔嬪悗錛屼粬灝卞紑濮嬪ぇ鏀懼帴璇?錛?“va_end鏄笉蹇呰鐨勶紒”

鐢辨錛?閫犳垚涓浜涗笉蹇呰鐨勮瑙d笌浜夎銆?br>


璁╂垜浠湅鐪嬪va_end鐨勪袱縐嶆佸害錛?br>


涓銆?va_end鑳界渷鍒欑渷錛?br>
鍋囪浣犱嬌鐢ㄧ殑鏌愪釜C/C++緙栬瘧鍣紝鎻愪緵鐨剉a_end鏄彲蹇界暐鐨勩?br>姣斿msvc涓殑va_end鐨勫疄鐜板涓嬶細
#define va_end(apap = (va_list)0  /* 灝哸p緗┖ */

閫氬父鐩存帴浣跨敤va_start鐨勫嚱鏁幫紙鍋囪鍙?strong>f錛夌殑瀹炵幇浣撲細寰堢煭銆傦細
1. 鐢?span style="COLOR: #ff00ff">va_start鍒濆鍖?span style="COLOR: #0000ff">va_list
2. 璋冪敤涓涓嬌鐢?strong>va_list鍙傛暟鐨勫嚱鏁幫紙鍋囪鍙?strong>vf錛?br>錛坴f 鏄竴涓浐瀹氬弬鏁板垪琛ㄧ殑鍑芥暟錛夈?br>
鍥犱負f鐨勫疄鐜頒綋闈炲父鐭紝 涓鐪兼湜絀褲?br>鎵浠ヤ綘鑳界‘淇漹f榪斿洖鍚庯紝 ap涓嶄細鍐嶈浣犱嬌鐢ㄣ?br>
鍥犳錛?灝哸p緗┖闄や簡嫻垂CPU鍛ㄦ湡錛?娌℃湁瀹為檯鎰忎箟錛?鏄繖鏍峰悧錛?br>

        涓銆?.  緙栬瘧鍣ㄥ弬涓庝紭鍖?br>
浣犺兘鍙戠幇浠g爜鏈熬ap涓嶅啀琚嬌鐢紝 va_end灝嗗叾緗┖姣棤鎰忎箟銆?br>閭d箞錛屼綘鐨勭紪璇戝櫒鑳藉彂鐜拌繖涓棶棰樹箞錛?br>
璇鋒煡璇佷竴涓嬨?br>濡傛灉緙栬瘧鍣ㄤ篃鐭ラ亾錛?騫朵笖娌℃湁涓簐a_end鐢熸垚浠諱綍浠g爜錛?閭d箞鐪佺暐va_end灝辨槸涓嶅繀瑕佺殑浜嗐?br>
        涓銆?. 緙栬瘧鍣ㄤ笉鍙備笌浼樺寲

浣犵紪璇戝櫒鐪熶負va_end鐢熸垚浜嗘棤鎰忎箟騫朵笖浠や漢鎰熷埌鏃犳硶鎺ュ彈鐨勬満鍣ㄧ爜鏃訛紝璇ユ庝箞鍔烇紵


                涓銆?.1 浣犲彧鍦ㄨ緙栬瘧鍣ㄤ笅宸ヤ綔

閭d箞錛屼綘鐪佺暐va_end濂戒簡銆?br>浣嗚涓嶈瀹f壃涓浜涘甫鏈?strong>璇鎬ц川鐨勮█杈炪?br>褰撲綘璇?#8220;va_end鏄笉闇瑕?#8221;鐨勬椂鍊欙紝 璇烽檮甯﹁鏄庯細
1. 浣犵殑騫沖彴
2. 浣?strong>涓?/span>鑰冭檻璺ㄥ鉤鍙?/strong>


                涓銆?.2 闇瑕佽鑰冭檻縐繪鍒板叾浠栫紪璇戝櫒

娉ㄦ剰錛?鍏朵粬緙栬瘧鍣ㄥ寘鎷紙浣嗕笉闄愪簬錛夛細
鈥斺斾笉鍚?strong>鏋舵瀯涓婄殑緙栬瘧鍣?br>鈥斺旂浉鍚屾灦鏋勪笂鐨勪笉鍚?strong>緙栬瘧鍣ㄤ駭鍝?/strong>
鈥斺旂浉鍚屾灦鏋勪笂鐨勭浉鍚岀紪璇戝櫒浜у搧鐨?strong>涓嶅悓鐗堟湰銆?br>
闇瑕佸垎鏋愬湪璇ョ紪璇戝櫒涓嬶紝瀵箆a_end鐨勫鐞嗘槸鍚?strong>渚濈劧鍙互琚渷鐣?/strong>銆?br>鈥斺旀樉鐒訛紝榪欐槸涓欏?strong>涔忓懗鐨勫伐浣溿?br>

鍗充嬌浣犲湪婧愪唬鐮佷腑鍐欏叆 錛?/p>

/* va_end is trivial, omit it */

涔熼毦淇濆畠涓嶄細琚?span style="COLOR: #ff0000">閬楀繕
鈥斺?縐繪涓涓▼搴忕殑鏃跺欐湁澶宸ヤ綔瑕佸仛銆?br>榪欎箞涓涓笉璧風溂鐨勫湴鏂癸紝 浼氳鎯寵搗鏉ヤ箞錛?br>

濡傛灉鍦ㄨ縐繪鐨勭紪璇戝櫒涓婏細
1. 鐪佺暐va_end灝嗗鑷村嚱鏁頒笉鑳芥甯歌繑鍥烇紙瑙侀檮褰曪級
涔熻绔嬮┈灝辮兘鍙戠幇榪欎釜bug銆?br>宕╂帀浜嗗槢錛?褰撶劧瑕佸紩璧?#8220;閲嶈”銆?br>
2. 鐪佺暐va_end涓嶄細绔嬮┈宕╂簝錛?鑰屾槸瀵艱嚧鍐呭瓨娉勯湶錛堣闄勫綍錛?br>鎯呭喌灝卞緢涓ラ噸浜嗐?br>紼嬪簭渚濈劧榪愯“鑹ソ”銆?br>浣嗘槸璋冪敤涓嬈″嚱鏁幫紝 灝辨硠婕忎竴鐐圭偣鍐呭瓨銆?br>
榪欐亹鎬曞氨瑕佽姳寰堝鏃墮棿鎵嶈兘鏌ュ嚭鏉ヤ簡銆?br>濡傛灉欏圭洰鏃墮棿鍐嶇揣涓鐐癸紝 涔熻鏍規湰灝辨潵涓嶅強淇榪欎釜bug灝卞彂甯冧簡銆?br>鍙嶆婕忓緱涔?#8220;涓嶅”錛?浣犺鏄惂錛?br>



浜屻?va_end鑳界暀鍒欑暀

鎴戜滑浣曚笉鎹釜鏂瑰紡錛?

1.  鍧氭寔浣跨敤va_end
鈥斺斿嵆渚挎垜浠績閲屾竻妤氬畠娌″仛浠涔堟湁鐢ㄧ殑浜嬫儏涔熸槸濡傛銆?br>
浠g爜縐繪鏈川灝辨槸錛?涓嶅騫沖彴錛圕PU銆丱S銆丆ompiler絳夌瓑錛変駭鐢?span style="COLOR: #ff0000">渚濊禆銆?br>stdarg灝辨槸鏍囧噯搴撴彁渚涚殑涓縐嶅疄鐜板彲鍙橀暱鍙傛暟鍒楄〃鐨?strong style="COLOR: #ff0000">鍙Щ妞?/strong>鏂瑰紡銆?br>鎴戜滑娌$悊鐢卞純涔嬩笉鐢ㄣ?br>
濡傛灉鎴戜滑鍦ㄦ簮浠g爜涓潥鎸佷嬌鐢╲a_end錛?br>鈥斺旇嚦灝戝湪榪欑偣涓婏紝灝變笉浼?strong>瀵圭紪璇戝櫒浜х敓渚濊禆錛堣?strong>鐪佺暐va_end錛屽氨鏄竴縐?span style="COLOR: #ff0000">渚濊禆錛夈?br>鈥斺旂Щ妞嶇殑鏃跺欙紝 鑷劧鏃犻』涓哄叾鎿嶅績銆?br>
2. va_end浠ょ紪璇戝櫒浜х敓浜?strong>浠や漢鏃犳硶鎺ュ彈鐨?strong style="COLOR: #ff0000">鏃犵敤浠g爜鏃?br>鈥斺旈氬父錛岃繖鏄笉浼氬彂鐢熺殑銆?緙栬瘧鍣ㄥ巶鍟嗕細鑰冭檻榪欎釜浜嬫儏銆?br>
姣斿涓婇潰鐨剉a_end瀹忥紝 浼氫駭鐢熶竴嬈′笉蹇呰鐨勮祴鍊兼搷浣滐紝 浣嗛氬父浼氳緙栬瘧鍣ㄤ紭鍖栦負絀恒?br>鍗充嬌娌℃湁琚紭鍖栦負絀猴紝 涓嬈¤祴鍊兼搷浣滐紝 鐪熺殑灝辨槸涓嶅彲瀹瑰繊鐨勪箞錛?br>
濡傛灉紜疄涓嶈兘瀹瑰繊錛?浣滀負涓縐?strong>鐗規畩鎯呭艦錛?鍙互榪欐牱 錛?/p>

#if defined(COMPILER1) || defined(COMPILER2|| ...
    
/*special situation
        the machine code generated by these compliers is unacceptable, omit it
    
*/
#else
    
/* general situation */
    va_end(ap);
#endif




闄勫綍 鈥斺?鐪嬬湅澶х墰浠槸鎬庝箞璇寸殑銆?br>
浠庝竴涓嬌鐢ㄨ繃va_start()鐨勫嚱鏁頒腑閫鍑轟箣鍓嶏紝蹇呴』璋冪敤涓嬈a_end()銆?br>榪欐槸鍥犱負va_start鍙兘浠ユ煇縐嶆柟寮?strong>淇敼浜嗗爢鏍?/strong>錛岃繖縐嶄慨鏀瑰彲鑳藉鑷?strong>榪斿洖鏃犳硶瀹屾垚錛寁a_end()鑳藉皢鏈夊叧鐨勪慨鏀瑰鍘熴?br>                鈥斺斻奀++紼嬪簭璁捐璇█銆?絎?鐗堛佺壒鍒増錛?p139
鈥斺斿嵆涓婇潰鎻愬埌鐨?“绔嬪嵆宕╂簝”銆?br>

鎴戜滑鍔″繀璁頒綇錛屽湪浣跨敤瀹寁a_list鍙橀噺鍚庝竴瀹氳璋冪敤瀹弙a_end銆?br>鍦?strong>澶у鏁?/strong>C瀹炵幇涓婏紝璋冪敤va_end涓?strong>鍚﹀茍鏃犲尯鍒?/strong>銆?br>浣嗘槸錛?strong>鏌愪簺鐗堟湰鐨剉a_start瀹忎負浜嗘柟渚垮va_list鐨勯亶鍘嗭紝灝辯粰鍙傛暟鍒楄〃鍔ㄦ佸垎閰嶅唴瀛?/strong>銆?br>榪欐牱涓縐岰瀹炵幇寰堝彲鑳藉埄鐢╲a_end瀹忔潵閲婃斁姝ゅ墠鍔ㄦ佸垎閰嶇殑鍐呭瓨錛?br>濡傛灉蹇樿璋冪敤瀹弙a_end錛屾渶鍚庡緱鍒扮殑紼嬪簭鍙兘鍦ㄦ煇浜涙満鍨嬩笂娌℃湁闂錛岃屽湪鍙︿竴浜涙満鍨嬩笂鍒欏彂鐢?#8220;鍐呭瓨娉勯湶”銆?br>                鈥斺斻奀闄烽槺涓庣己闄楓嬶紝 p161
鈥斺斿嵆涓婇潰鎻愬埌鐨?#8220;鍐呭瓨娉勯湶”銆?br>


…… 鏈鍚庯紝蹇呴』鍦ㄥ嚱鏁拌繑鍥炰箣鍓?strong>璋冪敤
va_end錛屼互瀹屾垚涓浜涘繀瑕佺殑娓呯悊宸ヤ綔銆?br>                鈥斺斻奀紼嬪簭璁捐璇█銆?絎?鐗堬紝 p137

……鍦ㄦ墍鏈夊弬鏁板鐞嗗畬姣曞悗錛?涓斿湪閫鍑哄嚱鏁癴涔嬪墠錛?strong>蹇呴』璋冪敤瀹弙a_end涓嬈?/strong> ……
                鈥斺斻奀紼嬪簭璁捐璇█銆?絎?鐗堬紝 p232

 



鐩稿叧閾炬帴錛?


鈥斺斿彲鍙橀暱鍙傛暟鍒楄〃璇尯涓庨櫡闃扁斺攙a_arg涓嶅彲鎺ュ彈鐨勭被鍨?br>http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/unacceptable_type_in_va_arg.html
榪欐槸浣跨敤stdarg鎻愪緵鐨勫姛鑳介渶瑕侀伒瀹堝綰︿箣涓銆?br>濂戠害鏈韓浠嶇劧鏄畝鍗曠殑銆?br>濂戠害鑳屽悗鐨勫師鐞嗕篃璁告瘮杈冩櫐娑╋紝 浣嗕篃鍙互涓嶅繀鍏沖績銆?br>



Creative Commons License
鏈?span xmlns:dc="http://purl.org/dc/elements/1.1/" rel="dc:type">浣滃搧閲囩敤鐭ヨ瘑鍏變韓緗插悕-闈炲晢涓氭т嬌鐢?鐩稿悓鏂瑰紡鍏變韓 2.5 涓浗澶ч檰璁稿彲鍗忚榪涜璁稿彲銆?

杞澆璇鋒敞鏄?錛?br>鏂囩珷浣滆?- OwnWaterloo
鍙戣〃鏃墮棿 - 2009騫?4鏈?1鏃?br>鍘熸枃閾炬帴 - http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/is_va_end_necessary.html

]]>
緙栬瘧鍣ㄩ夐」鈥斺旇璦http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/compiler_options_language.htmlOwnWaterlooOwnWaterlooMon, 20 Apr 2009 07:02:00 GMThttp://www.shnenglu.com/ownwaterloo/archive/2009/04/20/compiler_options_language.htmlhttp://www.shnenglu.com/ownwaterloo/comments/80538.htmlhttp://www.shnenglu.com/ownwaterloo/archive/2009/04/20/compiler_options_language.html#Feedback0http://www.shnenglu.com/ownwaterloo/comments/commentRss/80538.htmlhttp://www.shnenglu.com/ownwaterloo/services/trackbacks/80538.html涓銆?緇熶竴鐨勯澶勭悊銆佺紪璇戙侀摼鎺ョ▼搴?br>

        涓銆?. 鏈変簺紼嬪簭鍚屾椂鍏鋒湁濡備笅鍔熻兘錛?br>
1. 棰勫鐞咰/C++婧愪唬鐮?br>2. 緙栬瘧C/C++婧愪唬鐮?br>3. 閾炬帴C/C++鐩爣浠g爜

渚嬪錛欸CC鐨刧cc銆乬++錛孧SVC鐨刢l.exe銆?br>

        涓銆?. 瀹為檯鐨勬儏鍐典篃璁告洿鍔犲鏉傦細

gcc銆乬++銆乧l.exe寰堟湁鍙兘鍙槸涓涓?strong>鍚姩鍣?/strong>銆?br>鐢ㄦ埛鍙渶瑕佷嬌鐢ㄥ畠浠紝 瀹冧滑鍐呴儴鍐嶆牴鎹?strong>鐗瑰畾鏉′歡錛?鎵ц鍏朵粬紼嬪簭錛屾瘮濡傦細

1. gcc銆乬++緙栬瘧C/C++浠g爜鏃訛紝 鏈緇堜細鎵цcc1/cc1plus紼嬪簭銆?br>璇ョ▼搴忓彲鑳芥墠鏄湡姝g殑C/C++緙栬瘧鍣ㄣ?br>
2. gcc銆乬++鍦ㄩ摼鎺/C++鐩爣浠g爜鏃訛紝鏈緇堜細鎵цld紼嬪簭銆?br>璇ョ▼搴忓彲鑳芥墠鏄湡姝g殑閾炬帴鍣ㄣ?br>
3. cl.exe紼嬪簭鑷繁澶勭悊C/C++浠g爜鐨勯澶勭悊涓庣紪璇戝伐浣溿?br>
4. cl.exe紼嬪簭閾炬帴鏃訛紝灝嗘墽琛?strong>link.exe銆?br>璇ョ▼搴忓彲鑳芥墠鏄湡姝g殑閾炬帴鍣ㄣ?br>

        涓銆?. 鎴戜滑鐨勫叧娉ㄧ偣

鈥斺斾笂榪板鏉傜殑鎯呭喌鎴戜滑澶у鏁版儏鍐典笅鏃犻』鎿嶅績錛?br>
1. 鎴戜滑鍙渶瑕佷嬌鐢╣cc銆乬++
鍗充嬌浠ュ悗GCC灝哻c1銆乧c1plus銆乴d鏀逛負鍒殑鍚嶅瓧涔熶笉浼氬彈褰卞搷銆?br>
2. 鎴戜滑鍙渶瑕佷嬌鐢╟l
鍗充嬌浠ュ悗cl涓嶅啀鎷呬換緙栬瘧宸ヤ綔鎴栬卨ink.exe琚敼涓哄埆鐨勫悕瀛楋紝鍚屾牱涓嶅彈褰卞搷銆?br>

鈥斺旀垜浠渶瑕佸叧蹇冭繖浜涚粺涓鐨勭▼搴忥紝鏄?strong>鏍規嵁浣曠鏉′歡錛?鍐沖畾瀹冧滑鐨勬搷浣滅殑錛?br>
鏈枃鍙璁虹紪璇戯細
1. 瀹冧滑榛樿鏄氳繃浣曠鏉′歡錛?鍐沖畾鎸塁璇硶鎴栨寜C++璇硶緙栬瘧涓涓炕璇戝崟鍏冪殑銆?br>2. 濡備綍鏄懼紡鎸囧畾鎸塁璇硶鎴栬呮寜C++璇硶鍘葷紪璇戜竴涓炕璇戝崟鍏冦?br>


浜屻?榛樿鎯呭喌

濡傛灉涓嶆樉寮忔寚瀹氭搷浣滐紝 gcc銆乬++銆乧l閮芥槸鎸夋枃浠跺悗緙鍚嶆潵鍐沖畾鎿嶄綔鐨勩?br>
        浜屻?. 嫻嬭瘯鏂囦歡錛?
#ifndef __cplusplus
/* being treated as C translation unit */
#error !---  C  ---!
#else
// being treated as C++ translation unit
#error !--- C++ ---!
#endif

鎴戜滑寤轟竴涓病鏈夊悗緙鐨勬枃浠訛紝鍙玭osuffix錛?鍐欏叆濡備笂鍐呭銆?br>鑰屼笖錛?鎴戜滑涔熶笉闇瑕佺紪璇戝嚭鐩爣浠g爜銆?br>鍙渶瑕佹祴璇昣_cplusplus瀹忥紙瑙併?a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/predefined_macro___cplusplus.html">棰勫畾涔塤_cplusplus瀹?/strong>銆嬶級鏄惁瀛樺湪錛屽茍涓旂敤#error鎶ュ憡鍗沖彲銆?br>
鐒跺悗寤虹珛涓浜涘唴瀹瑰畬鍏ㄤ竴鏍風殑鏂囦歡錛?/p>

#include "nosuffix"


榪欎簺鏂囦歡鍏辨湁10涓細
c.c銆?cpp.cpp銆乼xt.txt銆乁C.C銆乁CPP.CPP銆乧c.cc銆乧xx.cxx銆乮nl.inl銆乧++.c++銆乧p.cp銆?br>錛圲C鍜孶CPP鏄負浜嗘祴璇曞ぇ鍐欏悗緙鍚嶏級


        浜屻?. 嫻嬭瘯鏂規硶

瀵笹CC浣跨敤錛?br>gcc(g++) filename >stdout.txt 2>stderr.txt

瀵筂SVC浣跨敤錛?br>cl filename >stdout.txt 2>stderr.txt


        浜屻?. 嫻嬭瘯緇撴灉

gcc銆乬++銆乧l瀵逛互涓嬪悗緙鍚嶆枃浠剁殑榛樿鎿嶄綔濡備笅琛?/a>錛?br>

 

nosuffix

.c

.cpp

.txt

.C

.CPP

.cc

.cxx

.inl

.c++

.cp

gcc

obj

C

C++

obj

C++

C++

C++

C++

obj

C++

C++

g++

obj

C++

C++

obj

C++

C++

C++

C++

obj

C++

C++

cl

obj

C

C++

obj

C

C++

C++

C++

obj

obj

obj


瀵硅琛ㄧ殑鍑犵偣璇存槑錛?br>1. 琛ㄤ腑鐨刼bj琛ㄧず璇ユ潯浠朵笅錛?緇熶竴紼嬪簭灝嗗畠浠浣滅洰鏍囨枃浠訛紝 騫舵墦綆楁墽琛岄摼鎺ュ伐浣溿?br>榪欐樉鐒舵槸閿欒鐨勶紝 鍥犱負浠栦滑鍖呭惈鐨勬槸鏂囨湰銆?br>
2. gcc銆乬++錛堢紪璇戜唬鐮侊級鐨勫尯鍒?br>GCC璁や負甯︽湁.c銆?cpp銆?C銆?CPP銆?cc銆?cxx銆?c++銆?cp錛堜絾涓嶉檺浜庯級鍚庣紑鐨勬枃浠舵槸C/C++婧愭枃浠躲?br>gcc鎶婂甫鏈?c鍚庣紑鐨勬枃浠訛紝 褰撲綔C婧愭枃浠訛紝 鎶婂甫鏈夊叾浠栧悗緙鍚嶇殑鏂囦歡褰撲綔C++婧愭枃浠躲?br>g++灝嗗甫鏈変笂榪版墍鏈夊悗緙鐨勬枃浠訛紝閮藉綋浣淐++婧愭枃浠躲?br>
3. MSVC涓嶨CC鐨勫尯鍒?br>MSVC璁や負甯︽湁.c銆?cpp銆?C銆?CPP銆?cc銆?cxx鍚庣紑鐨勬枃浠舵槸C/C++婧愭枃浠躲?br>涓婅堪GCC鐩告瘮錛?鎺掗櫎浜?c++鍜?cp

鍚屾椂錛寃indows涓嬬殑鏂囦歡鍚嶆槸涓嶅尯鍒嗗ぇ灝忓啓鐨勶紝 鎵浠?c鍚?C錛?cpp鍚?CPP鏄竴鏍風殑銆?br>涓嶨CC鐩告瘮錛?.C涓嶅啀璁や負鏄疌++婧愭枃浠訛紝 鑰屾槸涓?c涓鏍蜂綔涓篊婧愭枃浠跺鐞嗐?br>

        浜屻?. 嫻嬭瘯灝忕粨

鐢變笂琛ㄤ互鍙婅鏄庯紝 濡傛灉鎴戜滑鎵撶畻緙栧啓璺ㄥ鉤鍙扮殑浠g爜錛?br>
1. 涓嶆帹鑽愪嬌鐢ㄧ殑鍚庣紑鍚?br>.c++銆?cp
鈥斺斿洜涓哄畠浠笉琚玀SVC鏀寔
.C
鈥斺斿洜涓篗SVC騫朵笉鍖哄埆瀵瑰緟.c涓?C


2. 鍙互浣跨敤鐨勫悗緙鍚?br>鈥斺斿C婧愭枃浠?br>鍙互浣跨敤.c銆?br>
鈥斺斿C++婧愭枃浠?br>鍙互浣跨敤.cpp銆?cc銆?cxx銆?br>
鈥斺?CPP涓嶆帹鑽?br>鍥犱負鍦▁nix涓?a.CPP涓巃.cpp鏄?涓枃浠訛紝 鑰屽鍒跺埌Windows涓婂氨灝嗗彂鐢熼噸鍚嶃?br>濡傛灉鍙嬌鐢?cpp灝卞彲浠ラ伩鍏嶈鎯呭喌銆?br>

3. 鍏充簬.inl
鏈変簺鏂囦歡鍐呭紜疄鏄疌/C++浠g爜錛?浣嗘槸鍗翠笉鐩存帴浣滀負緲昏瘧鍗曞厓錛岃屾槸琚叾浠栫炕璇戝崟鍏冨寘鍚?br>鐞嗚涓婅錛屽畠浠彇浠諱綍鍚嶅瓧閮芥病鍏崇郴銆備絾鏄皢瀹冧滑鍙栦負.inl浼氬緱鍒頒竴浜涘ソ澶勶細
    鈥斺?nbsp; 鏆楃ず璇ユ枃浠跺寘鍚獵/C++浠g爜
    鈥斺?nbsp; 涓浜涚紪杈戝櫒浼氬鍏舵寜C/C++璇硶榪涜楂樹寒銆?br>




涓夈?鏄懼紡鎸囧畾

鏈夋椂鍊欓渶瑕佽鐩栭粯璁ゆ儏鍐碉紝鏄懼紡鎸囧畾鎴戜滑闇瑕佺殑鎿嶄綔銆?br>
        涓夈?. GCC “-x

GCC閫氳繃-x閫夐」鏄懼紡鎸囧畾緙栬瘧婧愪唬鐮佺殑璇█錛?br>-x c錛堟垨-xc錛?br>    鈥斺?nbsp; 灝嗘簮浠g爜浣滀負C婧愭枃浠躲?br>-x c++銆侊紙鎴?xc++錛?br>    鈥斺?nbsp; 灝嗘簮浠g爜浣滀負C++婧愭枃浠躲?br>
瀵逛簬“浜?#8221;涓殑嫻嬭瘯錛?鍙灝嗗懡浠よ鏀逛負錛?br>gcc(g++) -x c (-xc) filename

鎵鏈夋枃浠墮兘灝嗚浣滀負C婧愭枃浠跺鐞嗭紝 騫惰緭鍑?error !---  C  ---!

鑰屼嬌鐢ㄥ涓嬪懡浠よ錛?br>gcc(g++) -x c++ (-xc++) filename

鎵鏈夋枃浠墮兘灝嗚浣滀負C++婧愭枃浠跺鐞嗭紝 騫惰緭鍑?error !--- C++ ---!


        涓夈?. MSVC “/TC” “/TP”

MSVC閫氳繃/TC錛?TP錛夐夐」錛?鏄懼紡鎸囧畾灝嗚緭鍏ヤ綔涓篊錛圕++錛夋簮浠g爜銆?br>
瀵?#8220;浜?#8221;涓殑嫻嬭瘯錛?鍛戒護琛岋細
cl /TC filename

瀵規墍鏈夋枃浠墮兘灝嗚緭鍑?error !---  C  --- !

 

鍛戒護琛岋細
cl /TP filename

瀵規墍鏈夋枃浠墮兘灝嗚緭鍑?error !--- C++ ---!






鍥涖佹葷粨

1. 浣跨敤“浜屻?”涓帹鑽愮殑鏂瑰紡錛岀粰婧愪唬鐮佹枃浠跺懡鍚嶃?br>2. 瑕嗙洊榛樿鎯呭喌錛屼嬌鐢?x(GCC)鎴栬?TC銆?TP錛圡SVC錛?br>3. 欏哄甫鎻愪竴鐐癸紝 gcc銆乬++鐢ㄤ綔閾炬帴鏃訛紝 涔熸湁涓浜涘尯鍒?br>閾炬帴C++錛堟垨鑰匔/C++娣峰悎錛夌洰鏍囦唬鐮侊紝 鎺ㄨ崘浣跨敤g++銆?br>鍥犱負GCC楂樼増鏈腑錛?gcc閾炬帴鏃墮粯璁や笉浼氬鍏++闇瑕佺殑榪愯鏃跺簱銆?br>




鐩稿叧閾炬帴錛?br>
鈥斺旀簮浠g爜
http://immature.googlecode.com/svn/trunk/iMmature/sample/compiler_options/language

鈥斺斻?a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/predefined_macro___cplusplus.html">棰勫畾涔塤_cplusplus瀹?/a>銆?br>http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/predefined_macro___cplusplus.html




Creative Commons License
鏈?span xmlns:dc="http://purl.org/dc/elements/1.1/" rel="dc:type">浣滃搧閲囩敤鐭ヨ瘑鍏變韓緗插悕-闈炲晢涓氭т嬌鐢?鐩稿悓鏂瑰紡鍏變韓 2.5 涓浗澶ч檰璁稿彲鍗忚榪涜璁稿彲銆?

杞澆璇鋒敞鏄?錛?br>鏂囩珷浣滆?- OwnWaterloo
鍙戣〃鏃墮棿 - 2009騫?4鏈?0鏃?br>鍘熸枃閾炬帴 - http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/compiler_options_language.html



]]>
棰勫畾涔塤_cplusplus瀹?/title><link>http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/predefined_macro___cplusplus.html</link><dc:creator>OwnWaterloo</dc:creator><author>OwnWaterloo</author><pubDate>Mon, 20 Apr 2009 06:42:00 GMT</pubDate><guid>http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/predefined_macro___cplusplus.html</guid><wfw:comment>http://www.shnenglu.com/ownwaterloo/comments/80537.html</wfw:comment><comments>http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/predefined_macro___cplusplus.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ownwaterloo/comments/commentRss/80537.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ownwaterloo/services/trackbacks/80537.html</trackback:ping><description><![CDATA[<p>涓銆?浠嬬粛棰勫畾涔夊畯"__cplusplus"<br><br>        涓.1 __cplusplus瀹忓湪C++鏍囧噯涓殑鎻忚堪濡備笅錛?br><br>16.8 Predefined macro names<br>__cplusplus The name __cplusplus is defined to the value <strong style="COLOR: red">199711L</strong> when compiling a C++ translation unit.143)<br>143) It is <strong>intended</strong> that future versions of this standard will replace the value of this macro with a greater value.<br>Non-conforming compilers should use a value with <strong>at most five decimal digits</strong>.<br><br>                                        鈥斺?ISO C++03 p315<br>                                        鈥斺?ISO C++98 p309<br><br>濡傛灉涓孌典唬鐮佹槸闇瑕侀拡瀵笴++緙栧啓鐨勶紝 鍙互浣跨敤璇ュ畯榪涜鏉′歡緙栬瘧銆?br><br><br>        涓.2 __cplusplus鐨勫兼槸<strong>涓轟簡</strong>琛ㄧずC++鐨勭増鏈?br>        涓.3 __cplusplus鐨勭被鍨嬫槸"long int"<br><br><br>鈥斺旇繖鏄悊璁轟笂鐨勩?br>鐜板湪鍙戝竷鐨凜++鏍囧噯鍙湁C++98錛?C++03鏄疌++98鐨?strong>淇</strong>錛?鍐呭鍙湁寰堝皯鏀瑰彉銆?br>鎵浠ュ湪ISO C++03涓紝 涔熻瀹氳瀹忕殑鍊兼槸199711L錛堣繖鏄竴涓?strong>闀挎暣鏁板瓧闈㈠?/strong>錛夈?br><br>鈥斺斿疄闄呬笂錛?鐩墠<strong>涓嶅簲璇?span style="COLOR: red">渚濊禆</span>璇?/strong>瀹忕殑鍊鹼紝 鍥犱負錛?br>1. 鐩墠鏍囧噯涓瀹氱殑鍊煎彧鏈変竴涓斺?99711L錛?娌℃湁鏍規嵁璇ュ艱繘琛屾潯浠剁紪璇戠殑鍙兘銆?br><br>2. 鐩墠C++緙栬瘧鍣ㄥ茍涓嶄竴瀹?strong>鎸夋爣鍑嗗疄鐜?/strong>榪欎釜瀹忥紙瑙佹祴璇曪級銆?br><br> <hr width="80%"> <br>浜屻?嫻嬭瘯棰勫畾涔夊畯__cplusplus<br><br>紺轟緥1錛? <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">stdio.h</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> main() {<br><br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000"> TO_LITERAL(text) TO_LITERAL_(text)</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000"> TO_LITERAL_(text) #text</span><span style="COLOR: #000000"><br>#ifndef __cplusplus<br></span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"> this translation unit is being treated as a C one </span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br>    printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">a C program\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #0000ff">#else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> this translation unit is being treated as a C++ one</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">    printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">a C++ program\n__cplusplus expands to \</span><span style="COLOR: #000000">""<br></span><span style="COLOR: #000000">          TO_LITERAL(__cplusplus) </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">#endif</span><span style="COLOR: #000000"><br>    (</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">)getchar();<br>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}<br></span></div> <p>浠g爜寰堢畝鍗曪細<br>濡傛灉娌℃湁瀹氫箟__cplusplus錛?閭d箞褰撳墠婧愪唬鐮佽褰撲綔C婧愪唬鐮佸鐞嗐?br>濡傛灉瀹氫箟浜哶_cplusplus錛岄偅涔堝綋鍓嶆簮浠g爜琚綋涓瑿++婧愪唬鐮佸鐞嗭紝 騫朵笖杈撳嚭__cplusplus瀹忚灞曞紑鍚庣殑瀛楃涓層?br><br><br>紺轟緥2錛?/p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">__cplusplus</span></div> <p>榪欐浠g爜鏇寸畝鍗曚簡錛?鍙槸浣跨敤浜哶_cplusplus瀹忋?br>鐒跺悗鏌ョ湅棰勫鐞嗭紙瑙併?a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html"><strong>鏌ョ湅婧愭枃浠墮澶勭悊緇撴灉</strong></a>銆嬶級錛岀湅鍏惰鎵╁睍鍚庣殑緇撴灉銆?br><br> <hr width="80%"> <br>涓夈?嫻嬭瘯緇撴灉<br><br>        鈥斺攎svc8<br>        鈥斺攎svc9<br>__cplusplus鎸夌収鏍囧噯琚墿灞曚負鈥斺?99711L銆?br><br>        鈥斺攎svc6<br>        鈥斺攇cc (GCC) 3.4.2 (mingw-special)<br>        鈥斺攇cc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu3)<br>__cplusplus鍙槸綆鍗曠殑琚墿灞曚負鈥斺?銆?br><br><br>榪欎篃璇存槑浜嗕笉搴旇渚濊禆__cplusplus瀹忕殑鍊箋?br><br> <hr width="90%"> <br>鐩稿叧閾炬帴錛?br><br>鈥斺旀簮浠g爜<br><a >http://immature.googlecode.com/svn/trunk/iMmature/sample/predefined_macro/__cplusplus</a><br><br>鈥斺斻?a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html">鏌ョ湅婧愭枃浠墮澶勭悊緇撴灉</a>銆?br><a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html">http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html</a><br><br> <hr width="90%"> <br><a rel=license><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt="Creative Commons License" src="http://i.creativecommons.org/l/by-nc-sa/2.5/cn/88x31.png"></a><br>鏈?span xmlns:dc="http://purl.org/dc/elements/1.1/" rel="dc:type">浣滃搧</span>閲囩敤<a rel=license>鐭ヨ瘑鍏變韓緗插悕-闈炲晢涓氭т嬌鐢?鐩稿悓鏂瑰紡鍏變韓 2.5 涓浗澶ч檰璁稿彲鍗忚</a>榪涜璁稿彲銆?<br><br>杞澆璇鋒敞鏄?錛?br>鏂囩珷浣滆?- OwnWaterloo<br>鍙戣〃鏃墮棿 - 2009騫?4鏈?0鏃?br>鍘熸枃閾炬帴 - <a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/predefined_macro___cplusplus.html">http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/predefined_macro___cplusplus.html</a> <img src ="http://www.shnenglu.com/ownwaterloo/aggbug/80537.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ownwaterloo/" target="_blank">OwnWaterloo</a> 2009-04-20 14:42 <a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/predefined_macro___cplusplus.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>棰勫畾涔塤_GNUC__瀹?/title><link>http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/predefined_macro___GNUC__.html</link><dc:creator>OwnWaterloo</dc:creator><author>OwnWaterloo</author><pubDate>Thu, 16 Apr 2009 12:07:00 GMT</pubDate><guid>http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/predefined_macro___GNUC__.html</guid><wfw:comment>http://www.shnenglu.com/ownwaterloo/comments/80178.html</wfw:comment><comments>http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/predefined_macro___GNUC__.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ownwaterloo/comments/commentRss/80178.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ownwaterloo/services/trackbacks/80178.html</trackback:ping><description><![CDATA[<p>涓銆?浠嬬粛棰勫畾涔夊畯“__GNUC__”<br><br>        涓.1 __GNUC__ 鏄痝cc緙栬瘧鍣ㄧ紪璇戜唬鐮佹椂棰勫畾涔夌殑涓涓畯銆?br><br>闇瑕侀拡瀵筭cc緙栧啓浠g爜鏃訛紝 鍙互浣跨敤璇ュ畯榪涜鏉′歡緙栬瘧銆?br><br>        涓.2 __GNUC__ 鐨勫艱〃紺篻cc鐨勭増鏈?br><br>闇瑕侀拡瀵筭cc鐗瑰畾鐗堟湰緙栧啓浠g爜鏃訛紝涔熷彲浠ヤ嬌鐢ㄨ瀹忚繘琛屾潯浠剁紪璇戙?br><br>        涓.3 __GNUC__ 鐨勭被鍨嬫槸“int”<br><br>璇ュ畯琚墿灞曞悗錛?寰楀埌鐨勬槸<strong>鏁存暟瀛楅潰鍊?/strong>銆?br>鍙互閫氳繃<strong>浠呴澶勭悊</strong>錛屾煡鐪嬪畯鎵╁睍鍚庣殑<strong>鏂囨湰</strong>銆傝錛氥?strong><a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html#__GNUC__"><strong>鏌ョ湅婧愭枃浠墮澶勭悊緇撴灉</strong></a></strong>銆?br>鍚屾椂涓嬮潰鐨勭ず渚嬩篃鑳戒綋鐜板嚭榪欎竴鐐廣?br><br> <hr width="80%"> <br>浜屻?嫻嬭瘯棰勫畾涔夊畯__GNUC__<br><br>紺轟緥錛? <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">assert.h</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">stdio.h</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">typeinfo</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><br>#ifndef __GNUC__<br></span><span style="COLOR: #0000ff">#error</span><span style="COLOR: #000000"> sample for gcc compiler</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">#else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"> use gcc special extension: #warning , __attribute__, etc.  </span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">#endif</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> main() {<br>    printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello gcc %d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,__GNUC__);<br>    assert( typeid(__GNUC__)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">typeid(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">) );<br>    printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">press Enter to exit\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>    (</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">)getchar();<br>}<br></span></div> <p><br> <hr width="90%"> <br>淇敼錛?br><br>鈥斺?009/04/18<br><br>__GNUC__<br>__GNUC_MINOR__<br>__GNUC_PATCHLEVEL__<br>These macros are defined by all GNU compilers that use the C preprocessor:<br>C, C++, and Objective-C. Their values are the major version, minor version,<br>and patch level of the compiler, as <strong><span style="COLOR: red">integer</span> constants</strong>. For example, GCC 3.2.1<br>will define __GNUC__ to 3, __GNUC_MINOR__ to 2, and __GNUC_PATCHLEVEL__ to<br>1. They are defined only when the entire compiler is in use; if you invoke the<br>preprocessor directly, they are not defined.<br><br>      鈥斺?<a ><u><font color=#0000ff>http://gcc.gnu.org/onlinedocs/gcc-3.1.1/cpp/Common-Predefined-Macros.html#Common%20Predefined%20Macros</font></u></a><br> <hr width="90%"> <br>鐩稿叧閾炬帴錛?br><br>鈥斺旀簮浠g爜<br><a >http://immature.googlecode.com/svn/trunk/iMmature/sample/predefined_macro/extension/__GNUC__/</a><br><br>鈥斺斻婃煡鐪嬫簮鏂囦歡棰勫鐞嗙粨鏋溿?br><a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html">http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html</a><br><br>鈥斺斻婇瀹氫箟_MSC_VER瀹忋?br><a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/predefined_macro__MSC_VER.html">http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/predefined_macro__MSC_VER.html</a><br><br><br> <hr width="90%"> <br>  <a rel=license><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt="Creative Commons License" src="http://i.creativecommons.org/l/by-nc-sa/2.5/cn/88x31.png"></a><br>鏈?span xmlns:dc="http://purl.org/dc/elements/1.1/" rel="dc:type">浣滃搧</span>閲囩敤<a rel=license>鐭ヨ瘑鍏變韓緗插悕-闈炲晢涓氭т嬌鐢?鐩稿悓鏂瑰紡鍏變韓 2.5 涓浗澶ч檰璁稿彲鍗忚</a>榪涜璁稿彲銆?<br><br>杞澆璇鋒敞鏄?錛?br>鏂囩珷浣滆?- OwnWaterloo<br>鍙戣〃鏃墮棿 - 2009騫?4鏈?6鏃?br>鍘熸枃閾炬帴 - <a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/predefined_macro___GNUC__.html">http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/predefined_macro___GNUC__.html</a> <img src ="http://www.shnenglu.com/ownwaterloo/aggbug/80178.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ownwaterloo/" target="_blank">OwnWaterloo</a> 2009-04-16 20:07 <a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/predefined_macro___GNUC__.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>閰嶇疆msvc鍛戒護琛岀幆澧?緇?鈥斺旂紪鍐檓svc緙栬瘧鑴氭湰http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.htmlOwnWaterlooOwnWaterlooWed, 15 Apr 2009 19:42:00 GMThttp://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.htmlhttp://www.shnenglu.com/ownwaterloo/comments/80101.htmlhttp://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.html#Feedback0http://www.shnenglu.com/ownwaterloo/comments/commentRss/80101.htmlhttp://www.shnenglu.com/ownwaterloo/services/trackbacks/80101.html闃呰鍏ㄦ枃

]]>
鏌ョ湅婧愭枃浠墮澶勭悊緇撴灉http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.htmlOwnWaterlooOwnWaterlooWed, 15 Apr 2009 16:49:00 GMThttp://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.htmlhttp://www.shnenglu.com/ownwaterloo/comments/80093.htmlhttp://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html#Feedback4http://www.shnenglu.com/ownwaterloo/comments/commentRss/80093.htmlhttp://www.shnenglu.com/ownwaterloo/services/trackbacks/80093.html緙栬瘧C/C++婧愪唬鐮佹椂錛屾簮浠g爜棣栧厛浼氳棰勫鐞嗗櫒錛坧reprocessor錛夎繘琛岄澶勭悊錛坧reprocess錛夈?br>棰勫鐞嗗櫒鎵ц婧愪唬鐮佷腑鐨?strong>棰勫鐞嗘寚浠?/strong>錛屽錛?br>鈥斺旀枃浠跺寘鍚?br>#include
鈥斺旀潯浠剁紪璇?br>#if銆?#ifdef銆?#ifndef銆?#elif銆?#else銆?#endif
鈥斺斿畯
#define銆?#undef銆佸畯鏍囪瘑絎︺佸畯鎵╁睍
鈥斺斿叾浠?br>#error銆?line銆?pragma
……

棰勫鐞嗕箣鍚庣殑緇撴灉錛堝嵆灝嗘彁浜ょ粰緙栬瘧鍣級涓庣▼搴忓憳鐪嬪埌鐨勬簮浠g爜涔熻浼氭湁寰堝ぇ鐨勫樊寮?/strong>銆?br>灝ゅ叾鍦ㄦ簮浠g爜涓惈鏈夎澶氶敊緇煎鏉傜殑瀹忎笌鏉′歡緙栬瘧鏃躲?br>褰撴垜浠榪欎簺鐙備貢鐨勫畯涓庢潯浠剁紪璇戞姌紓ㄧ殑鏃跺欙紝 濡傛灉鑳界湅鍒伴澶勭悊鐨勭粨鏋滐紝 涔熻浼氭湁寰堝ぇ鐨勫府鍔┿?br>
涓嬮潰灝嗕互涓涓ず渚嬭鏄巑svc涓巊cc涓緱鍒伴澶勭悊緇撴灉鐨勬柟寮忋?br>


闆躲?紺轟緥

鍋囪鎴戜滑闇瑕佹煡鐪?_MSC_VER 涓?nbsp;__GUNC__ 涓や釜瀹忔渶緇堣鎵╁睍鍑虹殑鏂囨湰錛?nbsp;
int main() {
    
int result = 
#if defined(__GNUC__)
__GNUC__
#elif defined(_MSC_VER)
_MSC_VER
#else
#error unknown compiler
#endif
;
    
return result;
}

璇ョ▼搴忓緢綆鍗曪紝 main鍑芥暟榪斿洖涓涓猺esult錛岀劧鍚庣珛鍗抽鍑恒?br>鑰宺esult鐨勫鹼紝 鏍規嵁鏉′歡緙栬瘧寰楀埌錛?br>1. 濡傛灉鏄疓CC緙栬瘧鍣紝 閭d箞result璧嬪間負__GNUC__
2. 鍚﹀垯濡傛灉鏄疺C緙栬瘧鍣紝 閭d箞result璧嬪間負_MSC_VER
3. 鍚﹀垯鏄竴涓湭鐭ョ殑緙栬瘧鍣紝 閿欒

鎺ヤ笅鏉ワ紝 鎴戜滑鏉ョ湅鐪媉MSC_VER涓巁_GNUC__榪?涓畯鏈緇堝埌搴曡鎵╁睍涓轟粈涔堟枃鏈?br>



涓銆?GCC

        涓.1銆?-E 閫夐」

-E閫夐」灝嗘妸棰勫鐞嗙殑緇撴灉錛屽啓鍏tdout銆?br>涔熷氨鏄錛?鎵ц濡備笅鍛戒護錛?br>gcc -E preporcess_only.c

灝辮兘鍦ㄦ帶鍒跺彴涓緱鍒伴澶勭悊鍚庣殑緇撴灉錛屽ぇ鑷村涓嬶細
# 1 "../preprocess_only.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "../preprocess_only.c"
int main() {
    int result =

3





;
    return result;
}


鍙互鐪嬪埌錛?__GUNC__ 瀹忔渶緇堣鎵╁睍涓烘暣鏁板瓧闈㈤噺3錛圙CC 3錛夈?br>
濡傛灉婧愪唬鐮佸緢闀匡紝 杈撳嚭鍒板懡浠よ紿楀彛涓煡鐪嬩篃璁鎬笉鏂逛究銆?br>濡備綍灝嗗叾杈撳嚭鍒頒竴涓枃浠朵腑鍛紵


                涓.1.1銆?閲嶅畾鍚?br>
鍥犱負-E鏄緭鍑哄埌stdout錛?鏄劇劧鍙互灝嗗叾閲嶅畾鍚戝埌鍙︿竴涓枃浠訛紝 濡傛墽琛屽涓嬪懡浠わ細
gcc -E preprocess_only.c >stdout.txt

閭d箞stdout.txt涓紝 灝辮兘寰楀埌鍒氭墠鍛戒護琛岀獥鍙d腑鐨勫唴瀹廣?br>

                涓.1.2銆?-o 錛堝皬鍐欙級 閫夐」

-o閫夐」鐢ㄤ簬鎸囧畾鍑烘枃浠跺悕銆?br>瀵逛簬-c錛?-o鎸囧畾鐨勬槸鐩爣鏂囦歡鍚嶃?br>瀵逛簬-S 錛?o鎸囧畾鐨勬槸姹囩紪鏂囦歡鍚嶃?br>瀵逛簬-E錛?-o鑷劧涔熷彲浠ユ寚瀹氶澶勭悊鏂囦歡鍚嶏紝 濡傛墽琛屽涓嬪懡浠わ細
gcc -E preprocess_only.c -o output.txt

閭d箞output.txt涓細寰楀埌“涓.1.1”涓殑stdout.txt鍜?#8220;涓.1”涓帶鍒跺彴紿楀彛涓鏍風殑緇撴灉銆?br>

        涓.2銆?save-temps 閫夐」

-save-temps閫夐」灝嗕繚鐣?strong>涓棿鏂囦歡錛氬棰勫鐞嗗悗鐨勭粨鏋滄枃浠躲佹眹緙栦唬鐮佹枃浠朵笌鐩爣鏂囦歡銆?br>鍏朵腑鐨勯澶勭悊緇撴灉鏂囦歡錛堥氬父鏈?strong>.i鍚庣紑錛夋槸鎴戜滑鎵闇瑕佺殑銆?br>

涓句緥錛?br>1銆?gcc -save-temps -E preprocess_only.c
0涓腑闂存枃浠躲?br>杈撳嚭棰勫鐞嗙粨鏋滐紝 鍚?#8220;涓.1”涓鏍鳳紝 杈撳嚭鍒版帶鍒跺彴紿楀彛涓?br>瀵規瘮濡備笅鍛戒護錛?br>
1.1銆?nbsp;gcc -save-temps -E preprocess_only.c -o temp_output.txt
1.2銆?gcc -save-temps -E preprocess_only.c >temp_output.txt
鍙互鐪嬪嚭錛?-E閫夐」涓嶄駭鐢熶腑闂存枃浠躲?棰勫鐞嗙粨鏋滃氨鏄渶緇堢粨鏋溿?br>鍚屾椂鍙互浣跨敤 -o閫夐」鎴栬呴噸瀹氬悜錛?鎶婄粨鏋滀繚瀛樺埌涓涓枃浠朵腑銆?br>

2銆?gcc -save-temps -S preprocess_only.c
1涓腑闂存枃浠訛細 preprocess_only.i錛堥澶勭悊緇撴灉錛?br>1涓緭鍑烘枃浠訛細preprocess_only.s錛堟眹緙栦唬鐮侊級
瀵規瘮濡備笅鍛戒護錛?br>
2.1銆?gcc -save-temps -S preprocess_only.c -o unknown
寰楀埌preprocess_only.i鏂囦歡錛屽唴瀹規槸棰勫鐞嗙粨鏋滐紝鏄腑闂存枃浠躲?br>寰楀埌unknown鏂囦歡錛屽唴瀹規槸姹囩紪浠g爜錛?鏄渶緇堢粨鏋滄枃浠躲?br>

3銆?gcc -save-temps -c preprocess_only.c
2涓腑闂存枃浠訛細 preprocess_only.i涓巔reprocess_only.s銆?br>1涓緭鍑烘枃浠訛細 preprocess_only.o錛堢洰鏍囦唬鐮侊級
瀵規瘮濡備笅鍛戒護錛?br>
3.1銆?gcc -save-temps -c preprocess_only.c -o unknown
寰楀埌preprocess_only.i 涓?preprocess_only.s鏂囦歡錛屽唴瀹瑰垎鍒槸棰勫鐞嗙粨鏋滀笌姹囩紪浠g爜錛屾槸涓棿緇撴灉銆?br>unknown鏂囦歡錛?鍐呭鏄洰鏍囦唬鐮侊紝鏄渶緇堢粨鏋滄枃浠躲?br>
4銆?gcc -save-temps preprocess_only.c
3涓腑闂存枃浠訛細 preprocess_only.i銆乸reprocess_only.s銆乸reprocess_only.o銆?br>1涓緭鍑烘枃浠訛細 a.out錛坅.exe with mingw錛夈?br>瀵規瘮濡備笅鍛戒護錛?br>
4.1銆?gcc -save-temps preprocess_only.c -o what
寰楀埌涓婅堪3涓枃浠訛紝 鏄腑闂存枃浠躲?br>what鏂囦歡錛坵hat.exe with mingw錛夛紝 鍐呭鏄彲鎵ц浠g爜錛?鏄渶緇堢粨鏋滄枃浠躲?br>




浜屻?MSVC

VC6銆?銆?涓笌鏌ョ湅棰勫鐞嗙浉鍏崇殑閫夐」鍙互閫氳繃濡備笅鍛戒護鏌ョ湅錛?br>cl /help

鍦ㄨ緭鍑轟腑錛?nbsp;鎵?-PREPROCESSOR- 榪欎釜綾誨埆銆?br>鍏朵腑涓庨澶勭悊緇撴灉鐩稿叧鐨勬湁濡備笅涓浜涢夐」錛?br>
        浜?1銆?E 閫夐」

/E preprocess to stdout
/E 灝嗛澶勭悊瀹氬悜鍒?stdout

鏄劇劧錛?榪欏拰“涓.1”鏄瓑浠風殑錛?濡傦細
cl /E preprocess_only.c

鍦ㄥ懡浠よ紿楀彛涓皢寰楀埌綾諱技緇撴灉錛?
#line 1 "preprocess_only.c"
int main() {
    int result = 


#line 6 "preprocess_only.c"
1200


#line 10 "preprocess_only.c"
;
    return result;
}

鍙互鐪嬪埌錛?_MSC_VER瀹忔渶緇堣鎵╁睍涓烘暣鏁板瓧闈㈠?200錛圴C6錛夈?br>
瀵逛簬杈冮暱鐨勬簮鏂囦歡錛?鎴戜滑鍚屾牱甯屾湜灝嗙粨鏋滆緭鍑哄埌涓涓枃浠朵腑銆?br>

                浜?1.1銆侀噸瀹氬悜

鎵ц錛?br>cl /E preprocess_only.c >stdout.txt

stdout.txt灝嗕繚瀛樹笂闈㈢殑緇撴灉銆?br>
娉ㄦ剰錛?鍦╩svc涓紝娌℃湁“涓.1.2”鐨勫搴旂墿銆?br>鎵ц錛?br>cl /help

鍦ㄨ緭鍑轟腑鎵懼埌-OUTPUT FILES-綾誨埆錛?鍙互鐪嬪埌娌℃湁鍛藉悕棰勫鐞嗙粨鏋滅殑鏂瑰紡銆傛湁涓や釜鐩鎬技鐨勯夐」錛?br>/Fe 鍛藉悕鍙墽琛屾枃浠躲?br>/Fp 鍛藉悕棰勭紪璇戝ご鏂囦歡銆?br>浣嗕笉鏄垜浠渶瑕佺殑閫夐」銆?br>

涔熻VC璁や負閫氳繃 “/E + 閲嶅畾鍚?#8221;灝卞彲浠ヨ揪鍒板懡鍚嶈緭鍑烘枃浠剁殑鐩殑銆?br>鎵浠ュ氨娌℃湁璁捐杈懼埌姝ょ洰鐨勭殑鍙︿竴縐嶆柟娉曘?br>

        浜?2銆?P 閫夐」

/P preprocess to file
/P 棰勫鐞嗗埌鏂囦歡

鎵ц錛?br>cl /P preprocess_only.c

灝嗗緱鍒?preprocess_only.i

/P浼氬皢瀵?nbsp;xxx.suffix 鐨勯澶勭悊緇撴灉杈撳嚭鍒?xxx.i 鏂囦歡涓?br>娌℃湁鎸囧畾鏂囦歡鍚嶇殑鏂瑰紡銆?濡傛灉闇瑕?strong>鎸囧畾杈撳嚭鏂囦歡鍚?/strong>錛?鍙互浣跨敤 “/E + 閲嶅畾鍚?#8221;


        浜?3 /EP 閫夐」

/E涓?P閫夐」閮藉皢淇濈暀涓閮ㄥ垎錛堟簮鏂囦歡錛夎淇℃伅錛屽“浜?1”鎵紺恒?br>濡傛灉榪欐槸涓嶉渶瑕佺殑錛?鍙互浣跨敤 /EP閫夐」銆?br>
/EP preprocess to stdout, no #line
/EP 棰勫鐞嗗埌鏍囧噯杈撳嚭錛屾病鏈?#line

濡傦細
cl /EP preprocess_only.c

灝嗗緱鍒板涓嬭緭鍑猴細

int main() {
    
int result = 



1200



;
    
return result;
}


鍚屾牱錛?濡傛灉闇瑕佽緭鍑哄埌鎸囧畾鏂囦歡錛?鍙互浣跨敤閲嶅畾鍚?/strong>銆?br>

        浜?4 鍏朵粬涓浜涙湁瓚g殑閫夐」

1. /C 錛堝ぇ鍐欙級
don't strip comments錛堜笉鎶藉嚭娉ㄩ噴錛?br>濡傛灉淇濈暀娉ㄩ噴瀵圭悊瑙i澶勭悊緇撴灉鏈夊府鍔╋紝 鍙互浣跨敤榪欎釜閫夐」銆?br>
2. /U /u
/u remove all predefined macros
/u 縐婚櫎鎵鏈夐瀹氫箟鐨勫畯

/U<name> remove predefined macro
/U<name> 縐婚櫎棰勫畾涔夌殑瀹?br>
姣斿鍙互閫氳繃錛?br>cl /u preprocess_only.c
cl /U_MSC_VER preprocess_only.c

鏉ュ緱鍒頒竴涓?unknown complier閿欒鍥?#8230;…


3. /D
/D<name>{=|#}<text> define macro
/D<name>{=|#}<text> 瀹氫箟瀹?br>
鍙互閫氳繃錛?br>cl /D__GUNC__=3 preprocess_only.c

鏉ュ亣瑁単cc緙栬瘧鍣ㄥ洤……



 


鐩稿叧閾炬帴錛?br>
鈥斺旂ず渚嬫枃浠朵笅杞?br>http://immature.googlecode.com/svn/trunk/iMmature/sample/compiler_options/preprocess_only/
http://www.shnenglu.com/Files/ownwaterloo/preprocess_only.zip

鈥斺斻婇厤緗甿svc鍛戒護琛岀幆澧冦?br>http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/environment_for_using_cl_from_command_line.html

鈥斺斻婇厤緗甿svc鍛戒護琛岀幆澧?緇?鈥斺旂紪鍐檓svc緙栬瘧鑴氭湰銆?br>http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.html

鈥斺斻婇瀹氫箟_MSC_VER瀹忋?br>http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/predefined_macro__MSC_VER.html

鈥斺斻婇瀹氫箟__GNUC__瀹忋?br>http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/predefined_macro___GNUC__.html
 


 

 
Creative Commons License
鏈?span xmlns:dc="http://purl.org/dc/elements/1.1/" rel="dc:type">浣滃搧閲囩敤鐭ヨ瘑鍏變韓緗插悕-闈炲晢涓氭т嬌鐢?鐩稿悓鏂瑰紡鍏變韓 2.5 涓浗澶ч檰璁稿彲鍗忚榪涜璁稿彲銆?

杞澆璇鋒敞鏄?錛?br>鏂囩珷浣滆?- OwnWaterloo
鍙戣〃鏃墮棿 - 2009騫?4鏈?6鏃?br>鍘熸枃閾炬帴 - http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/preprocess_only.html



OwnWaterloo 2009-04-16 00:49 鍙戣〃璇勮
]]>
閰嶇疆msvc鍛戒護琛岀幆澧?/title><link>http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/environment_for_using_cl_from_command_line.html</link><dc:creator>OwnWaterloo</dc:creator><author>OwnWaterloo</author><pubDate>Wed, 15 Apr 2009 13:29:00 GMT</pubDate><guid>http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/environment_for_using_cl_from_command_line.html</guid><wfw:comment>http://www.shnenglu.com/ownwaterloo/comments/80059.html</wfw:comment><comments>http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/environment_for_using_cl_from_command_line.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ownwaterloo/comments/commentRss/80059.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ownwaterloo/services/trackbacks/80059.html</trackback:ping><description><![CDATA[<p>鏈変簺鏃跺欎嬌鐢ㄥ懡浠よ鑰屼笉鏄疘DE鍘葷紪璇戞簮浠g爜浼氭瘮杈冩柟渚褲?br>鑰屽湪鍛戒護琛屼笅浣跨敤msvc鐨勭紪璇戝櫒鈥斺攃l錛?闇瑕佷負鍏墮厤緗?strong>鐜</strong>銆?br><br> <hr width="80%"> <br>涓銆?鐜鍙橀噺嫻嬭瘯<br><br>嫻嬭瘯cl鐨勭幆澧冩槸鍚﹂厤緗Ε褰擄紝 鍙互鎵ц濡備笅嫻嬭瘯錛?br>win閿?R 鍚姩榪愯 -> 杈撳叆cmd錛坵innt緋誨垪錛夋垨鑰卌ommand錛坵in95緋誨垪錛?-> 鍥炶濺錛?鎵撳紑鍛戒護琛岀獥鍙c?br>閿叆"cl"騫跺洖杞︼紝 濡傛灉鏈夌被浼煎涓嬬殑杈撳嚭 錛?br><br>--------------------------------------------------------------------------------<br>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version <strong>12</strong>.00.8168 for 80x86<br>Copyright (C) Microsoft Corp 1984-1998. All rights reserved. <br><br>usage: cl [ option... ] filename... [ /link linkoption... ]<br>--------------------------------------------------------------------------------<br>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version <strong>14</strong>.00.50727.42 for 80x86<br>Copyright (C) Microsoft Corporation.  All rights reserved.<br><br>usage: cl [ option... ] filename... [ /link linkoption... ]<br>--------------------------------------------------------------------------------<br>鐢ㄤ簬 80x86 鐨?Microsoft (R) 32 浣?C/C++ 浼樺寲緙栬瘧鍣?<strong>15</strong>.00.30729.01 鐗?br>鐗堟潈鎵鏈?C) Microsoft Corporation銆備繚鐣欐墍鏈夋潈鍒┿?br><br>鐢ㄦ硶: cl [ 閫夐」... ] 鏂囦歡鍚?.. [ /link 閾炬帴閫夐」... ] <p>--------------------------------------------------------------------------------<br><br>涓鑸潵璇達紝 灝卞彲浠ュ湪鍛戒護琛屼笅浣跨敤cl浜嗐?br><br>cl鏂囦歡鐗堟湰涓嶸S鐗堟湰銆乂C浜у搧鐗堟湰銆乢MSC_VER瀹忕殑瀵瑰簲鍏崇郴濡備笅<a id=VS_VC_CL_MSC_VER_TABLE>琛?/a>錛?/p> <p> <table style="WIDTH: 480px; BORDER-COLLAPSE: collapse; HEIGHT: 126px" cellSpacing=0 cellPadding=3 border=1> <tbody> <tr> <td> <p align=center>VS鐗堟湰</p> </td> <td> <p align=center>VC浜у搧鐗堟湰鍙?/p> </td> <td> <p align=center>cl鏂囦歡鐗堟湰鍙?/p> </td> <td> <p align=center>_MSC_VER瀹忕殑鍊?/p> </td> </tr> <tr> <td> <p align=center>98</p> </td> <td> <p align=center>6.x</p> </td> <td> <p align=center>12.x</p> </td> <td> <p align=center>1200</p> </td> </tr> <tr> <td> <p align=center>2005</p> </td> <td> <p align=center>8.x</p> </td> <td> <p align=center>14.x</p> </td> <td> <p align=center>1400</p> </td> </tr> <tr> <td> <p align=center>2008</p> </td> <td> <p align=center>9.x</p> </td> <td> <p align=center>15.x</p> </td> <td> <p align=center>1500</p> </td> </tr> </tbody> </table> </p> <p><br> <hr width="80%"> <br>浜屻?嫻嬭瘯澶辮觸<br><br>濡傛灉鍑虹幇錛?br>1. “cl涓嶆槸鍐呴儴鎴栧閮ㄥ懡浠わ紝涔熶笉鏄彲榪愯鐨勭▼搴忔垨鎵瑰鐞嗘枃浠躲?#8221;<br>璇存槑cl涓嶅湪Path鐜鍙橀噺涓?br><br>2. 鎵句笉鍒皒xx.dll銆?br>cl鍦≒ath鐜鍙橀噺涓紝 Path涓己灝戝繀瑕佺殑dll鐨勮礬寰勩?br><br>3. 涓婅堪嫻嬭瘯閫氳繃錛?浣嗘槸鍦ㄧ紪璇戞椂鍑虹幇鎵句笉鍒板ご鏂囦歡鎴栬呭簱銆?br>璇存槑Path鐜鍙橀噺涓湁cl鍜屽繀瑕乨ll鐨勮礬寰勶紝 浣嗘槸浠嶇己灝戝叾浠栦竴浜涚幆澧冨彉閲忋?br><br>榪欎簺鎯呭喌錛?閮介渶瑕佽繘涓姝ラ厤緗幆澧冨彉閲忋?br><br> <hr width="80%"> <br>涓夈?閰嶇疆鐜鍙橀噺<br><br>        涓?1 銆佽瀹夎鍖呭府鍔╂敞鍐岀幆澧冨彉閲?br><br>VC6鍦ㄥ畨瑁呯殑鏃跺欙紝浼氬脊鍑轟竴涓璇濇錛岃浣犻夋嫨鏄惁娉ㄥ唽VC6鐨勭幆澧冨彉閲忋傚涓嬶細<br><br>For your convenince, the environment variables required to run build tools from a command prompt are saved in the VCVARS32.BAT in your BIN directory<br><br>錛堝閫夋錛?nbsp;<strong>Register Environment Variables<br></strong><br>Turn on this option to register environment variables for running Visual C++ tools from the command line.<br><br>榛樿澶嶉夋鏄病鏈夐変腑鐨勩?br>濡傛灉閫変腑錛?瀹夎瀹屾瘯鍚庡氨浼氭坊鍔犲繀瑕佺殑鐜鍙橀噺銆?br><br><br>鎵浠ワ紝 涓涓姙娉曟槸閲嶆柊瀹夎VC6錛堝弽姝e緢灝忥紝鐩稿浜嶸C8銆?瀹夎鍗佸垎蹇燂級銆?br><br><br>        涓?2 銆?a id=vc6env>鎵嬪伐娣誨姞鐜鍙橀噺</a><br><br>浠C6涓句緥錛屾垜浠彲浠ュ湪 錛?#8220;鎴戠殑鐢佃剳” -> “灞炴?#8221; -> “楂樼駭” -> “鐜鍙橀噺”涓坊鍔犲涓嬪彉閲忥細<br><br>%Path%="<strong><em>prefix</em></strong>\Microsoft Visual Studio\VC98\Bin";%Path%<br>cl.exe鎵鍦ㄨ礬寰勩?br><br>%include%="<strong><em>prefix</em></strong>\Microsoft Visual Studio\VC98\Include";%include%<br>%lib%="<strong><em>prefix</em></strong>\Microsoft Visual Studio\VC98\Lib";%lib%<br>C/C++浠ュ強Platform SDK<br><br>%include%="<strong><em>prefix</em></strong>\Microsoft Visual Studio\VC98\MFC\Include";%include%   <br>%lib%="<strong><em>prefix</em></strong>\Microsoft Visual Studio\VC98\MFC\Lib";%include%<br>MFC<br><br>%include%="<strong><em>prefix</em></strong>\Microsoft Visual Studio\VC98\ATL\Include";%include%<br>ATL<br><br>錛堝叾涓殑<strong><em>prefix</em></strong>鏄畨瑁呯洰褰曠殑鍓嶇紑錛変箣鍚庡氨鍙互鍦ㄥ懡浠よ涓嬌鐢╟l浜嗐?br><br><br>鍚屾椂錛?VC6銆?銆?閮芥彁渚涗簡涓涓壒澶勭悊<strong>vcvars32.bat</strong>銆?br>鎴戜滑鍙互鏌ョ湅鐩稿簲鐨剉cvars32.bat鏈緇堝仛浜嗕粈涔堝伐浣滐紝鑰屾墜宸ュ姞鍏ラ渶瑕佺殑鍙橀噺銆?br>涓嬪唴瀹規憳鑷垜鏈哄櫒涓婄殑v<strong style="COLOR: red">s</strong>vars32.bat錛圴C8銆?鐨剉cvars32.bat鏈緇堣皟鐢ㄥ畠浠級錛?br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Code_Closed_Image_225038 onclick="this.style.display='none'; Code_Closed_Text_225038.style.display='none'; Code_Open_Image_225038.style.display='inline'; Code_Open_Text_225038.style.display='inline';" height=16 src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" width=11 align=top><img id=Code_Open_Image_225038 style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_225038.style.display='none'; Code_Closed_Image_225038.style.display='inline'; Code_Closed_Text_225038.style.display='inline';" height=16 src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width=11 align=top><span id=Code_Closed_Text_225038 style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">vc8</span><span id=Code_Open_Text_225038 style="DISPLAY: none"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #000000">@set PATH</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\Common7\IDE;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\VC\BIN;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\Common7\Tools;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\Common7\Tools\bin;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\VC\PlatformSDK\bin;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\SDK\v2.</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.</span><span style="COLOR: #000000">0.50727</span><span style="COLOR: #000000">;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\VC\VCPackages;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">PATH</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000"><br>@set INCLUDE</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\VC\ATLMFC\INCLUDE;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\VC\INCLUDE;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\VC\PlatformSDK\include;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\SDK\v2.</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">\include;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">INCLUDE</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000"><br>@set LIB</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\VC\ATLMFC\LIB;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\VC\LIB;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\VC\PlatformSDK\lib;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\SDK\v2.</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">\lib;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">LIB</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000"><br>@set LIBPATH</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">C:\WINDOWS\Microsoft.NET\Framework\v2.</span><span style="COLOR: #000000">0.50727</span><span style="COLOR: #000000">;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">\VC\ATLMFC\LIB</span></span></div> <br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Code_Closed_Image_225000 onclick="this.style.display='none'; Code_Closed_Text_225000.style.display='none'; Code_Open_Image_225000.style.display='inline'; Code_Open_Text_225000.style.display='inline';" height=16 src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" width=11 align=top><img id=Code_Open_Image_225000 style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_225000.style.display='none'; Code_Closed_Image_225000.style.display='inline'; Code_Closed_Text_225000.style.display='inline';" height=16 src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width=11 align=top><span id=Code_Closed_Text_225000 style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">vc9</span><span id=Code_Open_Text_225000 style="DISPLAY: none"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #000000">@set PATH</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">9.0</span><span style="COLOR: #000000">\Common7\IDE;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">9.0</span><span style="COLOR: #000000">\VC\BIN;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">9.0</span><span style="COLOR: #000000">\Common7\Tools;C:\WINDOWS\Microsoft.NET\Framework\v3.</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">;C:\WINDOWS\Microsoft.NET\Framework\v2.</span><span style="COLOR: #000000">0.50727</span><span style="COLOR: #000000">;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">9.0</span><span style="COLOR: #000000">\VC\VCPackages;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">PATH</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000"><br>@set INCLUDE</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">9.0</span><span style="COLOR: #000000">\VC\ATLMFC\INCLUDE;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">9.0</span><span style="COLOR: #000000">\VC\INCLUDE;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">INCLUDE</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000"><br>@set LIB</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">9.0</span><span style="COLOR: #000000">\VC\ATLMFC\LIB;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">9.0</span><span style="COLOR: #000000">\VC\LIB;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">LIB</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000"><br>@set LIBPATH</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">C:\WINDOWS\Microsoft.NET\Framework\v3.</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">;C:\WINDOWS\Microsoft.NET\Framework\v2.</span><span style="COLOR: #000000">0.50727</span><span style="COLOR: #000000">;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">9.0</span><span style="COLOR: #000000">\VC\ATLMFC\LIB;D:\Program Files\Microsoft Visual Studio </span><span style="COLOR: #000000">9.0</span><span style="COLOR: #000000">\VC\LIB;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">LIBPATH</span><span style="COLOR: #000000">%</span></span></div> <br>鍙互鏍規嵁瀹冧滑錛岀粰VC8銆?璁劇疆鐜鍙橀噺銆?br><br><br>      涓?3 銆佷嬌鐢╲cvars32.bat<br><br>涓婇潰鎻愬埌vcvars32.bat錛屽畠浠殑浣嶇疆濡備笅錛?br><br>VC6  <em><strong>prefix</strong></em>\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT<br>VC8  <strong><em>prefix</em></strong>\Microsoft Visual Studio 8\VC\bin\vcvars32.bat<br>VC9  <strong><em>prefix</em></strong>\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat<br><br>闇瑕佹敞鎰忕殑鏄細 榪欎簺鎵瑰鐞嗘枃浠跺彧浼氬湪<strong>褰撳墠榪涚▼</strong>涓緗紙灞閮ㄧ殑錛夌幆澧冨彉閲忥紝涔熷氨鏄錛?br><br>1. 鐢╟md錛堟垨鑰卌ommand錛夋墦寮鐨勫懡浠よ紿楀彛涓紝 榪愯鏌愪釜vcvar32.bat涓嬈°?br>閭d箞褰撳墠鍛戒護琛岀獥鍙d腑灝卞彲浠ユ甯鎬嬌鐢╟l錛岀洿鍒板叧闂?br><br>2. 鍐欐壒澶勭悊鏂囦歡闇瑕佷嬌鐢?strong style="COLOR: red">call</strong> <strong><em>prefix</em></strong>\vcvars32.bat錛岃屼笉鏄洿鎺ュ惎鍔╲cvars32.bat銆?br>鍓嶈呬負褰撳墠榪涚▼錛坈pl.bat鍒涘緩鐨勮繘紼嬶級娣誨姞灞閮ㄤ簬榪涚▼鐜鍙橀噺銆?br>鍚庤呭惎鍔ㄤ竴涓繘紼嬶紝 涓哄叾鍔犲叆鐜鍙橀噺錛?鐒跺悗璇ヨ繘紼嬬珛鍗抽鍑衡斺旀病鏈変換浣曚綔鐢ㄣ?br><br><br>      涓?4銆?浣跨敤VSXXCOMNTOOLS鍙橀噺錛圴C8銆?錛?br><br>瀵逛簬VC8銆?鏈夊彟涓縐嶆柟寮忊斺斾笉娉ㄥ唽鍏ㄥ眬鐨勶紙緋葷粺鎴栧綋鍓嶇敤鎴鳳級鐜鍙橀噺錛屼粎涓哄綋鍓嶈繘紼嬭緗紙灞閮ㄧ殑錛夌幆澧冨彉閲忋?br>鍥犱負VC8銆?閮藉彲浠?strong>寰堟柟渚?/strong>鐨勪負鍗曚釜榪涚▼璁劇疆鐜鍙橀噺銆?br><br>瑙傚療vc8鍜寁c9鐨剉cvars32.bat鐨勫唴瀹癸紙浣嶇疆瑙佷笂錛夛紝 鍙戠幇瀹冧滑閮藉彧鏈変竴琛岋細<br>"%V<span style="COLOR: red">S</span>80COMNTOOLS%v<span style="COLOR: red">s</span>vars32.bat"<br>"%V<span style="COLOR: red">S</span>90COMNTOOLS%v<span style="COLOR: red">s</span>vars32.bat"<br><br>VS80COMNTOOLS銆乂S90COMNTOOLS錛堟敞鎰忎笉鏄疺C鑰屾槸VS錛夊垎鍒槸VS2005鍜孷S2008瀹夎鍚庝細璁劇疆鐨勭幆澧冨彉閲忋?br>鎵浠ユ垜浠篃鍙互鍦ㄨ嚜宸辯殑鎵瑰鐞嗕腑錛屽緢鏂逛究鐨勪負褰撳墠榪涚▼璁劇疆闇瑕佺殑鐜鍙橀噺銆傚涓嬶細<br><br>call "<strong>%VS80COMNTOOLS%</strong>vsvars32.bat"<br>浠ヤ笅cl鍛戒護灝嗘墽琛孷C8鐨刢l銆?br><br>call "<strong>%VS90COMNTOOLS%</strong>vsvars32.bat"<br>浠ヤ笅cl鍛戒護灝嗘墽琛孷C9鐨刢l銆?br><br> <hr width="80%"> <br>鍥涖?鎬葷粨<br><br>濡傛灉浠呴渶瑕佷嬌鐢ㄦ煇涓増鏈殑VC錛?騫朵笖鍙負鑷繁鏂逛究鑰屼嬌鐢ㄥ懡浠よ錛?鍙互浣跨敤涓婇潰浠諱綍涓縐嶆柟寮忋?br>綆鍗曞綊綰沖涓嬶細<br><br>1銆?浣跨敤鍏ㄥ眬鐜鍙橀噺鈥斺斿湪緋葷粺鎴栧綋鍓嶇敤鎴峰彉閲忎腑鍔犲叆闇瑕佺殑鍊箋?br>        1.1 閲嶆柊瀹夎<br>        1.2 鎵嬪伐鍔犲叆<br><br>2銆?涓嶄嬌鐢ㄥ叏灞鐜鍙橀噺<br>鈥斺斿湪鎵цcl鍓嶏紝鍏堜嬌鐢ㄥ搴旂殑vcvars32.bat錛堝懡浠よ紿楀彛涓墽琛屾垨鑰呰剼鏈腑call prefix\vcvars32.bat錛夈?br><br>        2.1 灝唙cvars32.bat鍔犲叆Path鍙橀噺<br>        2.2 浣跨敤"%V<span style="COLOR: red">S</span><strong>XX</strong>COMNTOOLS%v<strong style="COLOR: red">s</strong>vars.bat" (VC8銆?錛?鎴栬?absolutePath\vcvars32.bat<br><br><br>濡傛灉闇瑕佷嬌鐢ㄥ涓増鏈殑VC銆?鎴栬呴渶瑕佸皢緙栬瘧鑴氭湰鍙戝竷緇欏鎴蜂嬌鐢紝 灝變笉鑳借繖涔堥殢鎰忎簡銆?br>鍏蜂綋瑙侊細銆?a class=titlelink id=Editor_Results_rprSelectionList_ctl01_LinkTitle href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.html"><font color=#000000><strong>閰嶇疆msvc鍛戒護琛岀幆澧?緇?鈥斺旂紪鍐檓svc緙栬瘧鑴氭湰</strong></font></a>銆?br><br> <p> <hr width="80%"> <br>鐩稿叧閾炬帴錛?br><br>鈥斺斻?a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.html"><font color=#000000><strong>閰嶇疆msvc鍛戒護琛岀幆澧?緇?鈥斺旂紪鍐檓svc緙栬瘧鑴氭湰</strong></font></a>銆?br><a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.html">http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.html</a> <p><br>鈥斺斻?a ><strong>IDE 涓嶆槸紼嬪簭鍛樼殑鍞竴閫夋嫨錛堜竴錛?/strong></a>銆?br><a >http://blog.codingnow.com/2008/09/replacement_of_ide_1.html</a><br><br> <hr width="90%"> <br> <br><a rel=license><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt="Creative Commons License" src="http://i.creativecommons.org/l/by-nc-sa/2.5/cn/88x31.png"></a><br>鏈?span rel="dc:type" xmlns:dc="http://purl.org/dc/elements/1.1/">浣滃搧</span>閲囩敤<a rel=license>鐭ヨ瘑鍏變韓緗插悕-闈炲晢涓氭т嬌鐢?鐩稿悓鏂瑰紡鍏變韓 2.5 涓浗澶ч檰璁稿彲鍗忚</a>榪涜璁稿彲銆?br><br>杞澆璇鋒敞鏄?錛?br>鏂囩珷浣滆?- OwnWaterloo<br>鍙戣〃鏃墮棿 - 2009騫?4鏈?5鏃?br>鍘熸枃閾炬帴 - <a id=Editor_Edit_hlEntryLink title="view: 閰嶇疆msvc鍛戒護琛岀幆澧? href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/environment_for_using_cl_from_command_line.html" target=_blank>http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/environment_for_using_cl_from_command_line.html</a> <img src ="http://www.shnenglu.com/ownwaterloo/aggbug/80059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ownwaterloo/" target="_blank">OwnWaterloo</a> 2009-04-15 21:29 <a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/environment_for_using_cl_from_command_line.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.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://1177898.com" target="_blank">狠狠色噜噜狠狠狠狠色吗综合</a>| <a href="http://126film.com" target="_blank">亚洲自拍偷拍视频</a>| <a href="http://popowq.com" target="_blank">久久综合中文</a>| <a href="http://710557.com" target="_blank">亚洲片在线资源</a>| <a href="http://www11108b.com" target="_blank">亚洲激情小视频</a>| <a href="http://aa56789.com" target="_blank">免费观看国产成人</a>| <a href="http://133868.com" target="_blank">一区二区电影免费在线观看</a>| <a href="http://765409.com" target="_blank">亚洲免费观看高清完整版在线观看熊</a>| <a href="http://6688se.com" target="_blank">欧美日韩免费观看一区二区三区</a>| <a href="http://lorgou.com" target="_blank">亚洲视频精选在线</a>| <a href="http://ywy99.com" target="_blank">欧美一区在线视频</a>| <a href="http://wwzz3.com" target="_blank">亚洲激情精品</a>| <a href="http://wewe520.com" target="_blank">一本久道久久综合狠狠爱</a>| <a href="http://www672hh.com" target="_blank">国产精品一区视频网站</a>| <a href="http://gffffg.com" target="_blank">久久综合久久综合久久</a>| <a href="http://sz-jyqj.com" target="_blank">欧美肥婆在线</a>| <a href="http://039658.com" target="_blank">欧美中文字幕视频在线观看</a>| <a href="http://aberyco.com" target="_blank">久久久久久夜</a>| <a href="http://tefahsop.com" target="_blank">亚洲午夜性刺激影院</a>| <a href="http://bocai4488.com" target="_blank">先锋亚洲精品</a>| <a href="http://9uu91.com" target="_blank">99精品福利视频</a>| <a href="http://5588gww.com" target="_blank">日韩一级裸体免费视频</a>| <a href="http://wwwmm131.com" target="_blank">久久久99国产精品免费</a>| <a href="http://saox28.com" target="_blank">麻豆成人综合网</a>| <a href="http://haole081.com" target="_blank">亚洲欧美一区二区在线观看</a>| <a href="http://yqr55.com" target="_blank">久久久久久久尹人综合网亚洲</a>| <a href="http://wilcherish.com" target="_blank">99re66热这里只有精品3直播 </a>| <a href="http://540669.com" target="_blank">亚洲精品裸体</a>| <a href="http://jx963.com" target="_blank">亚洲欧美日韩国产一区二区三区</a>| <a href="http://tp112.com" target="_blank">亚洲国产欧美久久</a>| <a href="http://sdgs6788.com" target="_blank">亚洲在线黄色</a>| <a href="http://y87b.com" target="_blank">在线亚洲国产精品网站</a>| <a href="http://lucky5888.com" target="_blank">欧美一级播放</a>| <a href="http://kissgz.com" target="_blank">亚洲永久精品大片</a>| <a href="http://017492.com" target="_blank">免费久久久一本精品久久区</a>| <a href="http://sxhrdyb.com" target="_blank">亚洲欧美视频在线观看</a>| <a href="http://yymh1056.com" target="_blank">久久综合999</a>| <a href="http://138128.com" target="_blank">久久精品国产亚洲高清剧情介绍</a>| <a href="http://49vvvv.com" target="_blank">欧美精品日韩精品</a>| <a href="http://caca060.com" target="_blank">美女亚洲精品</a>| <a href="http://tk263.com" target="_blank">国产在线观看精品一区二区三区</a>| <a href="http://dd8uau0ncu.com" target="_blank">亚洲精品欧洲</a>| <a href="http://tyaisen.com" target="_blank">激情一区二区</a>| <a href="http://136066.com" target="_blank">午夜欧美不卡精品aaaaa</a>| <a href="http://www-188445.com" target="_blank">夜夜嗨av一区二区三区网页</a>| <a href="http://51shoudian.com" target="_blank">久久三级福利</a>| <a href="http://ez4444.com" target="_blank">久久嫩草精品久久久久</a>| <a href="http://www672hh.com" target="_blank">国产精品最新自拍</a>| <a href="http://ccc36-com.com" target="_blank">一本大道久久精品懂色aⅴ</a>| <a href="http://67idid.com" target="_blank">亚洲国产乱码最新视频 </a>| <a href="http://avtb2068.com" target="_blank">欧美成年视频</a>| <a href="http://feiniao168.com" target="_blank">国产一区视频网站</a>| <a href="http://www-236677.com" target="_blank">亚洲欧美大片</a>| <a href="http://maoshimh.com" target="_blank">欧美亚洲在线观看</a>| <a href="http://www-76577c.com" target="_blank">国产精品大片</a>| <a href="http://5a07.com" target="_blank">99综合在线</a>| <a href="http://9797690.com" target="_blank">一区二区三区欧美成人</a>| <a href="http://ddnwater.com" target="_blank">欧美黄色网络</a>| <a href="http://ss2ssc.com" target="_blank">亚洲韩国精品一区</a>| <a href="http://sz-jyqj.com" target="_blank">亚洲国语精品自产拍在线观看</a>| <a href="http://sqms2013.com" target="_blank">久久精品成人一区二区三区</a>| <a href="http://ythbhg.com" target="_blank">久久久av水蜜桃</a>| <a href="http://041935.com" target="_blank">国产日韩欧美一区二区三区四区</a>| <a href="http://zuan3344.com" target="_blank">亚洲综合另类</a>| <a href="http://haomscq.com" target="_blank">欧美在线播放高清精品</a>| <a href="http://9658888.com" target="_blank">国产热re99久久6国产精品</a>| <a href="http://444yd.com" target="_blank">亚洲影视在线</a>| <a href="http://777777hb.com" target="_blank">久久精视频免费在线久久完整在线看</a>| <a href="http://www-4564949.com" target="_blank">国产精品狼人久久影院观看方式</a>| <a href="http://tuokuba520.com" target="_blank">亚洲视频www</a>| <a href="http://7c3e.com" target="_blank">香蕉久久夜色精品国产</a>| <a href="http://chaoxibg.com" target="_blank">国产欧美欧洲在线观看</a>| <a href="http://569658.com" target="_blank">欧美在线免费视屏</a>| <a href="http://649929.com" target="_blank">久久久噜噜噜久久久</a>| <a href="http://811897.com" target="_blank">韩日欧美一区</a>| <a href="http://hjaa7.com" target="_blank">蜜臀久久99精品久久久久久9</a>| <a href="http://2015xiaomingkankan.com" target="_blank">牛牛影视久久网</a>| <a href="http://wwwby2232.com" target="_blank">亚洲日本成人网</a>| <a href="http://8eb26.com" target="_blank">欧美日韩视频专区在线播放 </a>| <a href="http://077229.com" target="_blank">亚洲美女av黄</a>| <a href="http://youjizzbox.com" target="_blank">亚洲欧美999</a>| <a href="http://854277.com" target="_blank">国产一区二区无遮挡</a>| <a href="http://yeepey.com" target="_blank">久久久久久精</a>| <a href="http://qq666qq.com" target="_blank">欧美日韩国产综合久久</a>| <a href="http://www-333410.com" target="_blank">午夜精品理论片</a>| <a href="http://www-666638.com" target="_blank">国产精品嫩草久久久久</a>| <a href="http://7749137.com" target="_blank">欧美专区亚洲专区</a>| <a href="http://booyitech.com" target="_blank">亚洲第一区在线观看</a>| <a href="http://8eb26.com" target="_blank">一区二区三区四区五区在线</a>| <a href="http://15149cc.com" target="_blank">国产精品一级</a>| <a href="http://caopormo.com" target="_blank">久久一二三四</a>| <a href="http://mytopvogue.com" target="_blank">亚洲裸体视频</a>| <a href="http://www901aaa.com" target="_blank">久久久久欧美</a>| <a href="http://580078.com" target="_blank">亚洲精品你懂的</a>| <a href="http://ww9494.com" target="_blank">国产欧美一区二区三区久久人妖</a>| <a href="http://pgpg520.com" target="_blank">久久全球大尺度高清视频</a>| <a href="http://777777hb.com" target="_blank">亚洲激情在线</a>| <a href="http://609005.com" target="_blank">久久精品夜色噜噜亚洲aⅴ</a>| <a href="http://kk5551.com" target="_blank">亚洲黄色毛片</a>| <a href="http://r4747.com" target="_blank">国产欧美另类</a>| <a href="http://2061826.com" target="_blank">欧美黄色aaaa</a>| <a href="http://4008166177.com" target="_blank">久久国产88</a>| <a href="http://cn1357.com" target="_blank">日韩视频一区二区三区在线播放</a>| <a href="http://555yye.com" target="_blank">久久精品国产999大香线蕉</a>| <a href="http://555hhu.com" target="_blank">日韩视频永久免费</a>| <a href="http://www18818.com" target="_blank">国产日韩综合一区二区性色av</a>| <a href="http://sapronlee.com" target="_blank">嫩草成人www欧美</a>| <a href="http://by1473.com" target="_blank">亚洲男人第一网站</a>| <a href="http://238918.com" target="_blank">亚洲欧洲在线观看</a>| <a href="http://hbsmhy.com" target="_blank">久久久亚洲影院你懂的</a>| <a href="http://o10669.com" target="_blank">亚洲深夜福利</a>| <a href="http://099553.com" target="_blank">91久久夜色精品国产网站</a>| <a href="http://kittybob.com" target="_blank">国产精品视频xxxx</a>| <a href="http://551753.com" target="_blank">欧美精品午夜视频</a>| <a href="http://wwwbbb888999.com" target="_blank">久久久久久久高潮</a>| <a href="http://18loutv.com" target="_blank">亚洲欧美国产视频</a>| <a href="http://boocnn.com" target="_blank">亚洲免费福利视频</a>| <a href="http://155fck.com" target="_blank">91久久精品一区二区三区</a>| <a href="http://605799.com" target="_blank">久久婷婷国产综合精品青草 </a>| <a href="http://syddzs.com" target="_blank">国产午夜精品美女视频明星a级</a>| <a href="http://dailymailnepal.com" target="_blank">鲁大师影院一区二区三区</a>| <a href="http://cn1898.com" target="_blank">午夜精品国产更新</a>| <a href="http://www381818.com" target="_blank">一区二区三区 在线观看视</a>| <a href="http://567acg.com" target="_blank">欧美福利影院</a>| <a href="http://www-401313.com" target="_blank">另类天堂av</a>| <a href="http://17cao8.com" target="_blank">久久精品中文</a>| <a href="http://444398.com" target="_blank">久久精品国产久精国产一老狼</a>| <a href="http://710557.com" target="_blank">国产精品99久久99久久久二8</a>| <a href="http://www-44442.com" target="_blank">亚洲成在线观看</a>| <a href="http://bauyu121.com" target="_blank">国产亚洲精品久久久久婷婷瑜伽</a>| <a href="http://zjjieda.com" target="_blank">国产精品国产三级国产普通话99 </a>| <a href="http://8181777.com" target="_blank">国产精品视频成人</a>| <a href="http://haohetour.com" target="_blank">欧美日韩亚洲一区二</a>| <a href="http://56701sy.com" target="_blank">欧美激情在线有限公司</a>| <a href="http://73cao.com" target="_blank">蜜乳av另类精品一区二区</a>| <a href="http://51120guahao.com" target="_blank">久久精品一区二区三区中文字幕</a>| <a href="http://xmzszx.com" target="_blank">午夜视频在线观看一区二区三区</a>| <a href="http://www-tk3333.com" target="_blank">亚洲视频一二</a>| <a href="http://91see8.com" target="_blank">亚洲视频视频在线</a>| <a href="http://118017.com" target="_blank">亚洲一区在线免费</a>| <a href="http://136hao.com" target="_blank">在线视频你懂得一区</a>| <a href="http://4006616309.com" target="_blank">日韩视频中文字幕</a>| <a href="http://tzhsdy.com" target="_blank">亚洲乱亚洲高清</a>| <a href="http://710691.com" target="_blank">99精品视频一区二区三区</a>| <a href="http://qiezisp2.com" target="_blank">日韩午夜激情av</a>| <a href="http://zzchanke.com" target="_blank">一区二区精品国产</a>| <a href="http://seqing9.com" target="_blank">亚洲永久免费</a>| <a href="http://obatshaka.com" target="_blank">欧美一区二区性</a>| <a href="http://1x118.com" target="_blank">久久久久9999亚洲精品</a>| <a href="http://www369cf.com" target="_blank">久久免费精品日本久久中文字幕</a>| <a href="http://l5076.com" target="_blank">久久久噜噜噜久久中文字幕色伊伊</a>| <a href="http://hicao32.com" target="_blank">欧美尤物一区</a>| <a href="http://jm1688e.com" target="_blank">免费在线播放第一区高清av</a>| <a href="http://tuiliqi.com" target="_blank">欧美77777</a>| <a href="http://mmpzyw.com" target="_blank">欧美涩涩网站</a>| <a href="http://yyypdq.com" target="_blank">欧美.www</a>| <a href="http://32tun.com" target="_blank">亚洲专区欧美专区</a>| <a href="http://sdhanm.com" target="_blank">久久久99久久精品女同性</a>| <a href="http://ylnnc.com" target="_blank">久久久精品免费视频</a>| <a href="http://www151zh.com" target="_blank">麻豆成人在线观看</a>| <a href="http://81ffff.com" target="_blank">亚洲国产精品999</a>| <a href="http://016889.com" target="_blank">妖精成人www高清在线观看</a>| <a href="http://1332233.com" target="_blank">亚洲先锋成人</a>| <a href="http://y87b.com" target="_blank">久久精品国产综合</a>| <a href="http://kedou09.com" target="_blank">欧美激情1区</a>| <a href="http://xhtd688.com" target="_blank">国产精品美女久久久久久久</a>| <a href="http://2015xiaomingkankan.com" target="_blank">国产日韩欧美精品综合</a>| <a href="http://lianjiemenye.com" target="_blank">在线日韩欧美视频</a>| <a href="http://88844401.com" target="_blank">宅男精品视频</a>| <a href="http://www-55125.com" target="_blank">久久久久久欧美</a>| <a href="http://www-ty66.com" target="_blank">亚洲国产小视频在线观看</a>| <a href="http://maogo666.com" target="_blank">亚洲视频一区二区</a>| <a href="http://xkm663y.com" target="_blank">久久久五月婷婷</a>| <a href="http://avse98.com" target="_blank">欧美三区美女</a>| <a href="http://www5xzz1.com" target="_blank">激情成人av</a>| <a href="http://syddzs.com" target="_blank">亚洲午夜久久久</a>| <a href="http://710691.com" target="_blank">欧美1区免费</a>| <a href="http://sapronlee.com" target="_blank">一区二区久久</a>| <a href="http://huxiu123.com" target="_blank">久久最新视频</a>| <a href="http://7628x.com" target="_blank">国产精品亚发布</a>| <a href="http://yp889.com" target="_blank">亚洲人成网站精品片在线观看</a>| <a href="http://wwwnnnn.com" target="_blank">亚洲男人天堂2024</a>| <a href="http://ythbhg.com" target="_blank">欧美国产综合一区二区</a>| <a href="http://ttdy20.com" target="_blank">亚洲综合视频网</a>| <a href="http://7269003.com" target="_blank">欧美国产视频日韩</a>| <a href="http://ycpeixun.com" target="_blank">国产偷久久久精品专区</a>| <a href="http://www-485050.com" target="_blank">亚洲伦伦在线</a>| <a href="http://xingcheny.com" target="_blank">久久夜色精品国产噜噜av</a>| <a href="http://www25sds.com" target="_blank">99在线精品视频</a>| <a href="http://jobmrleehxx.com" target="_blank">久久综合狠狠</a>| <a href="http://cctbdy.com" target="_blank">国产日产高清欧美一区二区三区</a>| <a href="http://422608.com" target="_blank">亚洲人成小说网站色在线</a>| <a href="http://qqqtrip.com" target="_blank">久久精品91</a>| <a href="http://9924338.com" target="_blank">9人人澡人人爽人人精品</a>| <a href="http://4tobi.com" target="_blank">蜜臀久久久99精品久久久久久 </a>| <a href="http://yyds16.com" target="_blank">欧美激情精品久久久久久久变态</a>| <a href="http://www5123ri.com" target="_blank">国产精品日本</a>| <a href="http://yw1998.com" target="_blank">在线亚洲一区观看</a>| <a href="http://929889.com" target="_blank">欧美肥婆bbw</a>| <a href="http://shiselol.com" target="_blank">欧美在线视频全部完</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>