锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩国产精品一区,国产日韩欧美在线播放,亚洲国产精品成人 http://www.shnenglu.com/ownwaterloo/zh-cn Tue, 30 Sep 2025 02:04:37 GMT Tue, 30 Sep 2025 02:04:37 GMT 60 C涓嶤++鐨勭粏寰尯鍒斺旂渷鐣ュ艦寮忓弬鏁板悕 http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_parameter_name.htmlOwnWaterloo OwnWaterloo Sun, 26 Apr 2009 07:01:00 GMT http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_parameter_name.html http://www.shnenglu.com/ownwaterloo/comments/81117.html http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_parameter_name.html#Feedback 5 http://www.shnenglu.com/ownwaterloo/comments/commentRss/81117.html http://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
鏈?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> http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_return_in_main.htmlOwnWaterloo OwnWaterloo Sun, 26 Apr 2009 06:37:00 GMT http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_return_in_main.html http://www.shnenglu.com/ownwaterloo/comments/81116.html http://www.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_return_in_main.html#Feedback 1 http://www.shnenglu.com/ownwaterloo/comments/commentRss/81116.html http://www.shnenglu.com/ownwaterloo/services/trackbacks/81116.html 涓銆佷緷鎹?br> C++鏍囧噯瑙勫畾錛歮ain鍑芥暟鍙互鐪佺暐榪斿洖璇彞錛岀瓑鏁堜簬榪斿洖0銆?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. If control reaches the end of main without encountering a return statement, the effect is that of executing return 0;
鈥斺擨SO C++03 3.6.1 Main function p44/72 鈥斺擨SO C++98 3.6.1 Main function p43/69 娉ㄦ剰錛?br>1. main鍑芥暟鐨勮繑鍥炵被鍨嬫槸int 錛?涓嶆槸void鎴栬呭叾浠栫被鍨嬨?br>2. 璇ヨ鍒?strong>浠呬粎瀵筸ain鍑芥暟閫傜敤銆?br>3. 瀵瑰叾浠栧嚱鏁幫紝濡傛灉鐪佺暐榪斿洖鍊鹼紝 灝嗗緱鍒頒竴涓?strong>璀﹀憡銆?br>4. 搴旇閬垮厤 3鐨勬儏鍐點?br>
浜屻?nbsp;紺轟緥 浜屻?. 涓涓悎娉曠殑鏈灝忓寲鐨勫畬鏁碈++紼嬪簭濡備笅錛?
int main() {}
浜屻?. 鐪佺暐鐨勭‘鍒囧惈涔?br> 鍚屾椂錛屾爣鍑嗕腑鐨勭敤璇槸寰?strong>鑰冪┒鐨勶細 “褰撴帶鍒跺埌杈緈ain緇撴潫澶勬椂娌℃湁閬囧埌return璇彞錛屾晥鏋滀笌榪斿洖0鐩稿悓”銆?br> 鍗蟲槸璇達紝鏍囧噯瑙勫畾鐨勬槸“瀵圭渷鐣eturn鐨?strong style="COLOR: #ff0000">鍒嗘敮錛岃涓鴻繑鍥?”銆?br>鍚屾椂錛屾爣鍑嗕篃鍏佽鍏朵粬鍒嗘敮 鍚湁榪斿洖璇彞銆?br>濡備笅錛?
int main( int argc, char * []) { switch (argc) { case 1 : // error, should passing argument return - 1 ; // parse arguments default : case 3 : // parser argv[2] case 2 : // parser argv[1] ; } // do some work // control reaches here }
娌℃湁杈撳叆鍛戒護琛屽弬鏁版椂錛?榪斿洖涓涓敊璇?br>鍏朵粬鎯呭喌錛屽綋鎺у埗杈懼埌main鐨?strong>緇撳熬澶勬椂錛屾晥鏋滃悓return 0; 浜屻?. 瀵逛簬鍏朵粬鍑芥暟錛屾病鏈夎繖縐?#8220;浼樺緟” 濡傦細
int not_main( int argc) { if (argc <= 1 ) return - 1 ; } int main( int argc, char * []) { return not_main(argc); }
not_main鏃犵枒灝嗗緱鍒頒竴涓鍛娿?br>紼嬪簭鍦ㄦ病鏈夎緭鍏ュ懡浠よ鍙傛暟鏃剁殑榪斿洖鍊煎皢鏃犳硶 棰勭煡 銆?br>
涓夈侀獙璇?br> 涓夈?. ERRORLEVEL windows涓嬶紝鍙互閫氳繃 %ERRORLEVEL % 鏌ヨ涓婁竴嬈$▼搴忚繑鍥炲箋?br> 緇撴灉涓庡垽鏂浉鍚誨悎錛?br>1. minimalist鏈?strong>紜畾鐨勮繑鍥炲? 2. omit_return_in_main鏈?strong>紜畾鐨勮繑鍥炲?1鎴? 3. 瀵筼mit_return_in_other 3.1 鏈夊懡浠よ鍙傛暟鏃訛紝榪斿洖鍊?strong>紜畾涓?銆?br>3.2 鏃犲懡浠よ鍙傛暟鏃訛紝榪斿洖鍊?strong>鏃犳硶 棰勭煡銆?
涓夈? 姹囩紪浠g爜 鏇翠弗璋ㄧ殑楠岃瘉鏂規硶鏄煡鐪嬫眹緙栦唬鐮併?br> 鍙互鐪嬪埌錛屽湪minimalist涓巓mit_return_in_main鐨刴ain鍑芥暟涓兘鏈夊皢eax緗?鐨勪唬鐮併?br>鍦╫mit_return_in_other涓殑not_main鍑芥暟涓紝娌℃湁榪欐牱鐨勪唬鐮併?/p>
鍥涖?nbsp;渚嬪VC6 鍦ㄨ繖鐐逛笂涓庢爣鍑嗕笉絎︺?br> 鍥涖?. 瀵筼mit_return_in_main錛屽畠緇欏嚭鐨勮鍛婏細 warning C4715: 'main' : not all control paths return a value 璇存槑瀹冨湪榪欑偣涓婁笌鏍囧噯涓嶇銆?br>鏄劇劧錛屽湪鏈夊懡浠よ鍙傛暟鐨勬椂鍊欙紝紼嬪簭緇撴灉鏃犳硶 棰勭煡 銆?br> 鍥涖?. 瀵筸inimalist錛屽畠緇欏嚭鐨勮鍛婂緢鎼炵瑧錛?br> warning C4508: 'main' : function should return a value; 'void' return type assumed 鏆撮湶鍑哄畠鍙︿竴涓?strong>涓庢爣鍑嗕笉絎?/strong>鐨勫湴鏂光斺攎ain榪斿洖void銆?br>鏄劇劧錛屼換浣曟儏鍐典笅錛岀▼搴忕粨鏋滈兘鏃犳硶棰勭煡 銆?br> 鍥涖?. 瀵筼mit_return_in_other錛屾槸紼嬪簭鍛樼殑閿欒銆?br>
浜斻?瀹炶返 涓嶇煡閬撲負浠涔圕++鏍囧噯鍦ㄨ繖閲屽紑涓涓?#8220;鍚庨棬”銆?br>鈥斺擟++鍦ㄨ澶氬湴鏂歸兘鏄緢涓ヨ皚 鐨勩?br> 鍦ㄥ疄闄呭簲鐢ㄤ腑錛屽敖閲忎笉瑕侀噰鐢ㄨ繖涓鐗規э紝 鍥犱負錛?br>1. 鏃х紪璇戝櫒涓嶆敮鎸?br>2. C涓嶆敮鎸佲斺斿鏋滃笇鏈沵ain鑳藉悓鏃舵寜C璇█緙栬瘧鐨勮瘽 瀵逛簬婕旂ず 鐢ㄧ殑C++浠g爜錛屼笌涓婚鏃犲叧鐨勪唬鐮佽鑳界渷鍒欑渷錛屽垯鍙互浣跨敤榪欎竴鐗規с?br>姣斿錛欳++鏍囧噯涓殑紺轟緥浠g爜鍑犱箮閮介噰鐢ㄤ簡榪欎竴鐗規с?br>鐢辨鍙緱鍑猴紝C++鏍囧噯鍦ㄨ繖閲屽紑鍚庨棬鐨勫師鍥犳槸鈥斺旇C++鏍囧噯鏇磋杽^_^
鐩稿叧閾炬帴錛?br> 鈥斺旂ず渚嬩唬鐮?br>http://immature.googlecode.com/svn/trunk/iMmature/sample/omit_return_in_main
鏈?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/26/omit_return_in_main.html
]]>鍙彉闀垮弬鏁板垪琛ㄨ鍖轟笌闄烽槺鈥斺攙a_arg涓嶅彲鎺ュ彈鐨勭被鍨?/title> http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/unacceptable_type_in_va_arg.htmlOwnWaterloo OwnWaterloo Tue, 21 Apr 2009 15:41:00 GMT http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/unacceptable_type_in_va_arg.html http://www.shnenglu.com/ownwaterloo/comments/80655.html http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/unacceptable_type_in_va_arg.html#Feedback 5 http://www.shnenglu.com/ownwaterloo/comments/commentRss/80655.html http://www.shnenglu.com/ownwaterloo/services/trackbacks/80655.html 渚嬪錛屾垜浠瀹炵幇涓涓畝鏄撶殑my_printf錛?br>1. 瀹冨彧榪斿洖void錛?涓嶈褰曡緭鍑虹殑瀛楃鏁扮洰 2. 瀹冨彧鎺ュ彈"%d"鎸夋暣鏁拌緭鍑恒?%c"鎸夊瓧絎﹁緭鍑恒?%%"杈撳嚭'%'鏈韓 濡備笅錛?br>
1 #include < stdarg.h > 2 3 void my_printf( const char * fmt, ... ) 4 { 5 va_list ap; 6 va_start (ap,fmt); /* 鐢ㄦ渶鍚庝竴涓叿鏈夊弬鏁扮殑綾誨瀷鐨勫弬鏁板幓鍒濆鍖朼p */ 7 for (; * fmt; ++ fmt) 8 { 9 /* 濡傛灉涓嶆槸鎺у埗瀛楃 */ 10 if ( * fmt != ' % ' ) 11 { 12 putchar( * fmt); /* 鐩存帴杈撳嚭 */ 13 continue ; 14 } 15 /* 濡傛灉鏄帶鍒跺瓧絎︼紝鏌ョ湅涓嬩竴瀛楃 */ 16 ++ fmt; 17 if ( ' \0 ' ==* fmt) /* 濡傛灉鏄粨鏉熺 */ 18 { 19 assert( 0 ); /* 榪欐槸涓涓敊璇?nbsp; */ 20 break ; 21 } 22 switch ( * fmt) 23 { 24 case ' % ' : /* 榪炵畫2涓?%'杈撳嚭1涓?%' */ 25 putchar( ' % ' ); 26 break ; 27 case ' d ' : /* 鎸夌収int杈撳嚭 */ 28 { 29 /* 涓嬩竴涓弬鏁版槸int錛屽彇鍑?nbsp; */ 30 int i = va_arg (ap, int ); 31 printf( " %d " ,i); 32 } 33 break ; 34 case ' c ' : /* 鎸夌収瀛楃杈撳嚭 */ 35 { 36 /* * 浣嗘槸錛屼笅涓涓弬鏁版槸char鍚?/span> */ 37 /* 鍙互榪欐牱鍙栧嚭鍚?/span>錛?nbsp; */ 38 char c = va_arg (ap, char ); 39 printf( " %c " ,c); 40 } 41 break ; 43 } 44 } 45 va_end (ap); /* 閲婃斁 ap鈥斺?蹇呴』錛?/font> 瑙?strong>鐩稿叧閾炬帴 */ 46 }
榪欎笌銆奀++紼嬪簭璁捐璇█銆嬩腑鐨勪竴閬撶粌涔犻寰堢被浼箋?br>鈥斺旈渶瑕佹敮鎸?%c"鎺у埗絎?br> 鍦ㄣ奀++紼嬪簭璁捐璇█-棰樿В銆嬩腑錛岀粰鍑轟簡涓涓瓟妗堬紙涓枃p65欏碉級銆?br>浣嗘槸錛?濡傚悓涓婇潰鐨勪唬鐮佷竴鏍?/strong>錛屽畠浠兘鏄?strong style="COLOR: #ff0000">閿欒 鐨勶紒
綆鍗曠殑璇達紝鎴戜滑鐢?span style="COLOR: #ff00ff">va_arg(ap ,type )鍙栧嚭涓涓弬鏁扮殑鏃跺欙紝type 緇?/span>瀵逛笉鑳戒負 浠ヤ笅綾誨瀷錛?br>鈥斺?span style="COLOR: #0000ff">char 銆?span style="COLOR: #0000ff">signed char 銆?span style="COLOR: #0000ff">unsigned char 鈥斺?span style="COLOR: #0000ff">short 銆?span style="COLOR: #0000ff">unsigned short 鈥斺?span style="COLOR: #0000ff">signed short 銆?span style="COLOR: #0000ff">short int 銆?span style="COLOR: #0000ff">signed short int 銆?span style="COLOR: #0000ff">unsigned short int 鈥斺?span style="COLOR: #0000ff">float 涓涓畝鍗曠殑鐞嗙敱鏄細 鈥斺?strong>璋冪敤鑰?span style="COLOR: #ff0000">緇濆涓?/span>浼?/strong>鍚?span style="COLOR: #993300">my_printf浼犻?/strong>浠ヤ笂綾誨瀷鐨?strong>瀹為檯鍙傛暟 銆?br> 鍦–璇█涓紝璋冪敤涓涓笉甯﹀師鍨嬪0鏄庣殑鍑芥暟鏃訛細 璋冪敤鑰呬細瀵?strong>姣忎釜鍙傛暟鎵ц“榛樿瀹為檯鍙傛暟鎻愬崌 (default argument promotions )”銆?br> 鍚屾椂錛屽鍙彉闀垮弬鏁板垪琛?strong>瓚呭嚭鏈鍚庝竴涓?/strong>鏈?strong>綾誨瀷澹版槑鐨勫艦寮忓弬鏁?/strong>涔嬪悗鐨?strong>姣忎竴涓疄闄呭弬鏁?/strong>錛屼篃灝嗘墽琛屼笂榪版彁鍗囧伐浣溿?br>鎻愬崌宸ヤ綔濡備笅錛?br>鈥斺攆loat綾誨瀷鐨勫疄闄呭弬鏁板皢鎻愬崌鍒癲ouble 鈥斺攃har銆乻hort鍜岀浉搴旂殑signed銆乽nsigned綾誨瀷鐨勫疄闄呭弬鏁版彁鍗囧埌int 鈥斺斿鏋渋nt涓嶈兘瀛樺偍鍘熷鹼紝鍒欐彁鍗囧埌unsigned int 鐒跺悗錛岃皟鐢ㄨ呭皢鎻愬崌鍚?/strong>鐨勫弬鏁?strong>浼犻?/strong>緇欒璋冪敤鑰呫?br>鎵浠ワ紝my_printf鏄?strong>緇濆鏃犳硶鎺ユ敹鍒?/strong>涓婅堪綾誨瀷鐨勫疄闄呭弬鏁扮殑銆?br>
涓婇潰鐨勪唬鐮佺殑38涓?9琛岋紝搴旇鏀逛負錛?br>
int c = va_arg (ap, int ); printf( " %c " ,c);
鍚岀悊錛?濡傛灉闇瑕佷嬌鐢╯hort鍜宖loat錛?涔熷簲璇ヨ繖鏍鳳細
short s = ( short )va_arg(ap, int ); float f = ( float )va_arg(ap, double );
榪欎篃鏄痯rintf鏃忓嚱鏁版病鏈夌敤浜巗hort鍜宖loat鐨勬帶鍒剁鐨勫師鍥犮?br>
闄勫綍錛?br> 鍦ㄣ奀璇█紼嬪簭璁捐銆嬪鍙彉闀垮弬鏁板垪琛ㄧ殑鐩稿叧绔犺妭涓紝騫舵病鏈夋彁鍒拌繖涓櫡闃便?br>浣嗘槸鏈夋彁鍒伴粯璁ゅ疄闄呭弬鏁版彁鍗囩殑瑙勫垯錛?br> 鍦ㄦ病鏈夊嚱鏁板師鍨嬬殑鎯呭喌涓嬶紝char涓巗hort綾誨瀷閮藉皢琚漿鎹負int綾誨瀷錛宖loat綾誨瀷灝嗚杞崲涓篸ouble綾誨瀷銆?br> 鈥斺斻奀璇█紼嬪簭璁捐銆嬬2鐗? 2.7 綾誨瀷杞崲 p36 鍦ㄥ叾浠栦竴浜涗功綾嶄腑錛屼篃鏈夋彁鍒拌繖涓鍒欙細 浜嬫儏寰堟竻妤氾紝濡傛灉涓涓弬鏁版病鏈夊0鏄庯紝緙栬瘧鍣ㄥ氨娌℃湁淇℃伅鍘誨瀹冩墽琛屾爣鍑嗙殑綾誨瀷媯鏌ュ拰杞崲銆?br>鍦ㄨ繖縐嶆儏鍐典笅錛屼竴涓猚har鎴杝hort灝嗕綔涓篿nt浼犻掞紝float灝嗕綔涓篸ouble浼犻掋?br>榪欎簺鍋氭湭蹇呮槸紼嬪簭鍛樻墍鏈熸湜鐨勩?br>鑴氭敞錛氳繖浜涢兘鏄敱C璇█緇ф壙鏉ョ殑鏍囧噯鎻愬崌銆?br>瀵逛簬鐢辯渷鐣ュ彿琛ㄧず鐨勫弬鏁幫紝鍏跺疄闄呭弬鏁板湪浼犻掍箣鍓嶆繪墽琛岃繖浜涙彁鍗囷紙濡傛灉瀹冧滑灞炰簬闇瑕佹彁鍗囩殑綾誨瀷錛夛紝灝嗘彁鍗囧悗鐨勫間紶閫掔粰鏈夊叧鐨勫嚱鏁般傗斺旇瘧鑰呮敞 鈥斺斻奀++紼嬪簭璁捐璇█銆嬬3鐗?鐗瑰埆鐗?7.6 p138 …… float綾誨瀷鐨勫弬鏁頒細鑷姩杞崲涓篸ouble綾誨瀷錛宻hort鎴朿har綾誨瀷鐨勫弬鏁頒細鑷姩杞崲涓篿nt綾誨瀷 …… 鈥斺斻奀闄烽槺涓庣己闄楓?4.4 褰㈠弬銆佸疄鍙備笌榪斿洖鍊?p73 榪欓噷鏈変竴涓櫡闃遍渶瑕侀伩鍏嶏細 va_arg瀹忕殑絎?涓弬鏁頒笉鑳借鎸囧畾涓?strong>char 銆?strong>short鎴栬?strong>float綾誨瀷銆?br>鍥犱負char鍜宻hort綾誨瀷鐨勫弬鏁頒細琚漿鎹負int綾誨瀷錛岃宖loat綾誨瀷鐨勫弬鏁頒細琚漿鎹負double綾誨瀷 …… 渚嬪錛岃繖鏍峰啓鑲畾鏄笉瀵?/strong>鐨勶細 c = va_arg(ap,char); 鍥犱負鎴戜滑鏃犳硶浼犻掍竴涓猚har綾誨瀷鍙傛暟錛屽鏋滀紶閫掍簡錛屽畠灝嗕細琚嚜鍔ㄨ漿鍖栦負int綾誨瀷銆備笂闈㈢殑寮忓瓙搴旇鍐欐垚錛?br>c = va_arg(ap,int); 鈥斺斻奀闄烽槺涓庣己闄楓媝164
2009/05/07 淇敼錛?br>printf鍑芥暟鏃忔湁鐢ㄤ簬short鐨勬帶鍒剁“h”銆?br>瑙侊細http://www.cplusplus.com/reference/clibrary/cstdio/printf/
鐩稿叧閾炬帴錛?br> 鈥斺斻婂彲鍙橀暱鍙傛暟鍒楄〃璇尯涓庨櫡闃扁斺攙a_end鏄繀欏葷殑鍚楋紵銆?br>http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/is_va_end_necessary.html
鏈?span rel="dc:type" xmlns:dc="http://purl.org/dc/elements/1.1/">浣滃搧閲囩敤鐭ヨ瘑鍏變韓緗插悕-闈炲晢涓氭т嬌鐢?鐩稿悓鏂瑰紡鍏變韓 2.5 涓浗澶ч檰璁稿彲鍗忚 榪涜璁稿彲銆?
杞澆璇鋒敞鏄?錛?br>鏂囩珷浣滆?- OwnWaterloo 鍙戣〃鏃墮棿 - 2009騫?4鏈?1鏃?br>鍘熸枃閾炬帴 - http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/unacceptable_type_in_va_arg.html
]]> 鍙彉闀垮弬鏁板垪琛ㄨ鍖轟笌闄烽槺鈥斺攙a_end鏄繀欏葷殑鍚楋紵 http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/is_va_end_necessary.htmlOwnWaterloo OwnWaterloo Tue, 21 Apr 2009 07:53:00 GMT http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/is_va_end_necessary.html http://www.shnenglu.com/ownwaterloo/comments/80616.html http://www.shnenglu.com/ownwaterloo/archive/2009/04/21/is_va_end_necessary.html#Feedback 2 http://www.shnenglu.com/ownwaterloo/comments/commentRss/80616.html http://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 (ap ) ap = (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>
鏈?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.htmlOwnWaterloo OwnWaterloo Mon, 20 Apr 2009 07:02:00 GMT http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/compiler_options_language.html http://www.shnenglu.com/ownwaterloo/comments/80538.html http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/compiler_options_language.html#Feedback 0 http://www.shnenglu.com/ownwaterloo/comments/commentRss/80538.html http://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
鏈?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> http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/predefined_macro___cplusplus.htmlOwnWaterloo OwnWaterloo Mon, 20 Apr 2009 06:42:00 GMT http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/predefined_macro___cplusplus.html http://www.shnenglu.com/ownwaterloo/comments/80537.html http://www.shnenglu.com/ownwaterloo/archive/2009/04/20/predefined_macro___cplusplus.html#Feedback 0 http://www.shnenglu.com/ownwaterloo/comments/commentRss/80537.html http://www.shnenglu.com/ownwaterloo/services/trackbacks/80537.html 涓銆?浠嬬粛棰勫畾涔夊畯"__cplusplus" 涓.1 __cplusplus瀹忓湪C++鏍囧噯涓殑鎻忚堪濡備笅錛?br> 16.8 Predefined macro names __cplusplus The name __cplusplus is defined to the value 199711L when compiling a C++ translation unit.143) 143) It is intended that future versions of this standard will replace the value of this macro with a greater value. Non-conforming compilers should use a value with at most five decimal digits . 鈥斺?ISO C++03 p315 鈥斺?ISO C++98 p309 濡傛灉涓孌典唬鐮佹槸闇瑕侀拡瀵笴++緙栧啓鐨勶紝 鍙互浣跨敤璇ュ畯榪涜鏉′歡緙栬瘧銆?br> 涓.2 __cplusplus鐨勫兼槸涓轟簡 琛ㄧずC++鐨勭増鏈?br> 涓.3 __cplusplus鐨勭被鍨嬫槸"long int" 鈥斺旇繖鏄悊璁轟笂鐨勩?br>鐜板湪鍙戝竷鐨凜++鏍囧噯鍙湁C++98錛?C++03鏄疌++98鐨?strong>淇錛?鍐呭鍙湁寰堝皯鏀瑰彉銆?br>鎵浠ュ湪ISO C++03涓紝 涔熻瀹氳瀹忕殑鍊兼槸199711L錛堣繖鏄竴涓?strong>闀挎暣鏁板瓧闈㈠?/strong>錛夈?br> 鈥斺斿疄闄呬笂錛?鐩墠涓嶅簲璇?span style="COLOR: red">渚濊禆璇?/strong>瀹忕殑鍊鹼紝 鍥犱負錛?br>1. 鐩墠鏍囧噯涓瀹氱殑鍊煎彧鏈変竴涓斺?99711L錛?娌℃湁鏍規嵁璇ュ艱繘琛屾潯浠剁紪璇戠殑鍙兘銆?br> 2. 鐩墠C++緙栬瘧鍣ㄥ茍涓嶄竴瀹?strong>鎸夋爣鍑嗗疄鐜?/strong>榪欎釜瀹忥紙瑙佹祴璇曪級銆?br>
浜屻?嫻嬭瘯棰勫畾涔夊畯__cplusplus 紺轟緥1錛?
#include < stdio.h > int main() { #define TO_LITERAL(text) TO_LITERAL_(text) #define TO_LITERAL_(text) #text #ifndef __cplusplus/* this translation unit is being treated as a C one */ printf(" a C program\n " ); #else // this translation unit is being treated as a C++ one printf( " a C++ program\n__cplusplus expands to \ "" TO_LITERAL(__cplusplus) " \ " \n " ); #endif (void )getchar(); return 0 ; }
浠g爜寰堢畝鍗曪細 濡傛灉娌℃湁瀹氫箟__cplusplus錛?閭d箞褰撳墠婧愪唬鐮佽褰撲綔C婧愪唬鐮佸鐞嗐?br>濡傛灉瀹氫箟浜哶_cplusplus錛岄偅涔堝綋鍓嶆簮浠g爜琚綋涓瑿++婧愪唬鐮佸鐞嗭紝 騫朵笖杈撳嚭__cplusplus瀹忚灞曞紑鍚庣殑瀛楃涓層?br> 紺轟緥2錛?/p>
__cplusplus
榪欐浠g爜鏇寸畝鍗曚簡錛?鍙槸浣跨敤浜哶_cplusplus瀹忋?br>鐒跺悗鏌ョ湅棰勫鐞嗭紙瑙併?a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html">鏌ョ湅婧愭枃浠墮澶勭悊緇撴灉 銆嬶級錛岀湅鍏惰鎵╁睍鍚庣殑緇撴灉銆?br>
涓夈?嫻嬭瘯緇撴灉 鈥斺攎svc8 鈥斺攎svc9 __cplusplus鎸夌収鏍囧噯琚墿灞曚負鈥斺?99711L銆?br> 鈥斺攎svc6 鈥斺攇cc (GCC) 3.4.2 (mingw-special) 鈥斺攇cc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu3) __cplusplus鍙槸綆鍗曠殑琚墿灞曚負鈥斺?銆?br> 榪欎篃璇存槑浜嗕笉搴旇渚濊禆__cplusplus瀹忕殑鍊箋?br>
鐩稿叧閾炬帴錛?br> 鈥斺旀簮浠g爜http://immature.googlecode.com/svn/trunk/iMmature/sample/predefined_macro/__cplusplus 鈥斺斻?a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html">鏌ョ湅婧愭枃浠墮澶勭悊緇撴灉銆?br>http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html
鏈?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/predefined_macro___cplusplus.html
]]> 棰勫畾涔塤_GNUC__瀹?/title> http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/predefined_macro___GNUC__.htmlOwnWaterloo OwnWaterloo Thu, 16 Apr 2009 12:07:00 GMT http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/predefined_macro___GNUC__.html http://www.shnenglu.com/ownwaterloo/comments/80178.html http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/predefined_macro___GNUC__.html#Feedback 0 http://www.shnenglu.com/ownwaterloo/comments/commentRss/80178.html http://www.shnenglu.com/ownwaterloo/services/trackbacks/80178.html 涓銆?浠嬬粛棰勫畾涔夊畯“__GNUC__” 涓.1 __GNUC__ 鏄痝cc緙栬瘧鍣ㄧ紪璇戜唬鐮佹椂棰勫畾涔夌殑涓涓畯銆?br> 闇瑕侀拡瀵筭cc緙栧啓浠g爜鏃訛紝 鍙互浣跨敤璇ュ畯榪涜鏉′歡緙栬瘧銆?br> 涓.2 __GNUC__ 鐨勫艱〃紺篻cc鐨勭増鏈?br> 闇瑕侀拡瀵筭cc鐗瑰畾鐗堟湰緙栧啓浠g爜鏃訛紝涔熷彲浠ヤ嬌鐢ㄨ瀹忚繘琛屾潯浠剁紪璇戙?br> 涓.3 __GNUC__ 鐨勭被鍨嬫槸“int” 璇ュ畯琚墿灞曞悗錛?寰楀埌鐨勬槸鏁存暟瀛楅潰鍊?/strong>銆?br>鍙互閫氳繃浠呴澶勭悊 錛屾煡鐪嬪畯鎵╁睍鍚庣殑鏂囨湰 銆傝錛氥?strong>鏌ョ湅婧愭枃浠墮澶勭悊緇撴灉 銆?br>鍚屾椂涓嬮潰鐨勭ず渚嬩篃鑳戒綋鐜板嚭榪欎竴鐐廣?br>
浜屻?嫻嬭瘯棰勫畾涔夊畯__GNUC__ 紺轟緥錛?
#include < assert.h > #include < stdio.h > #include < typeinfo > #ifndef __GNUC__#error sample for gcc compiler #else /* use gcc special extension: #warning , __attribute__, etc. */ #endif int main() { printf( " hello gcc %d\n " ,__GNUC__); assert( typeid(__GNUC__) == typeid( int ) ); printf( " press Enter to exit\n " ); ( void )getchar(); }
淇敼錛?br> 鈥斺?009/04/18 __GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__ These macros are defined by all GNU compilers that use the C preprocessor: C, C++, and Objective-C. Their values are the major version, minor version, and patch level of the compiler, as integer constants . For example, GCC 3.2.1 will define __GNUC__ to 3, __GNUC_MINOR__ to 2, and __GNUC_PATCHLEVEL__ to 1. They are defined only when the entire compiler is in use; if you invoke the preprocessor directly, they are not defined. 鈥斺?http://gcc.gnu.org/onlinedocs/gcc-3.1.1/cpp/Common-Predefined-Macros.html#Common%20Predefined%20Macros
鐩稿叧閾炬帴錛?br> 鈥斺旀簮浠g爜http://immature.googlecode.com/svn/trunk/iMmature/sample/predefined_macro/extension/__GNUC__/ 鈥斺斻婃煡鐪嬫簮鏂囦歡棰勫鐞嗙粨鏋溿?br>http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html 鈥斺斻婇瀹氫箟_MSC_VER瀹忋?br>http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/predefined_macro__MSC_VER.html
鏈?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/predefined_macro___GNUC__.html
]]> 閰嶇疆msvc鍛戒護琛岀幆澧?緇?鈥斺旂紪鍐檓svc緙栬瘧鑴氭湰 http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.htmlOwnWaterloo OwnWaterloo Wed, 15 Apr 2009 19:42:00 GMT http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.html http://www.shnenglu.com/ownwaterloo/comments/80101.html http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.html#Feedback 0 http://www.shnenglu.com/ownwaterloo/comments/commentRss/80101.html http://www.shnenglu.com/ownwaterloo/services/trackbacks/80101.html 闃呰鍏ㄦ枃 ]]> 鏌ョ湅婧愭枃浠墮澶勭悊緇撴灉 http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.htmlOwnWaterloo OwnWaterloo Wed, 15 Apr 2009 16:49:00 GMT http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html http://www.shnenglu.com/ownwaterloo/comments/80093.html http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.html#Feedback 4 http://www.shnenglu.com/ownwaterloo/comments/commentRss/80093.html http://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.c0 涓腑闂存枃浠躲?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.c1 涓腑闂存枃浠訛細 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.c2 涓腑闂存枃浠訛細 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.c3 涓腑闂存枃浠訛細 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
鏈?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
]]> 閰嶇疆msvc鍛戒護琛岀幆澧?/title> http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/environment_for_using_cl_from_command_line.htmlOwnWaterloo OwnWaterloo Wed, 15 Apr 2009 13:29:00 GMT http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/environment_for_using_cl_from_command_line.html http://www.shnenglu.com/ownwaterloo/comments/80059.html http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/environment_for_using_cl_from_command_line.html#Feedback 0 http://www.shnenglu.com/ownwaterloo/comments/commentRss/80059.html http://www.shnenglu.com/ownwaterloo/services/trackbacks/80059.html 鏈変簺鏃跺欎嬌鐢ㄥ懡浠よ鑰屼笉鏄疘DE鍘葷紪璇戞簮浠g爜浼氭瘮杈冩柟渚褲?br>鑰屽湪鍛戒護琛屼笅浣跨敤msvc鐨勭紪璇戝櫒鈥斺攃l錛?闇瑕佷負鍏墮厤緗?strong>鐜銆?br>
涓銆?鐜鍙橀噺嫻嬭瘯 嫻嬭瘯cl鐨勭幆澧冩槸鍚﹂厤緗Ε褰擄紝 鍙互鎵ц濡備笅嫻嬭瘯錛?br>win閿?R 鍚姩榪愯 -> 杈撳叆cmd錛坵innt緋誨垪錛夋垨鑰卌ommand錛坵in95緋誨垪錛?-> 鍥炶濺錛?鎵撳紑鍛戒護琛岀獥鍙c?br>閿叆"cl"騫跺洖杞︼紝 濡傛灉鏈夌被浼煎涓嬬殑杈撳嚭 錛?br> -------------------------------------------------------------------------------- Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12 .00.8168 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. usage: cl [ option... ] filename... [ /link linkoption... ] -------------------------------------------------------------------------------- Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14 .00.50727.42 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. usage: cl [ option... ] filename... [ /link linkoption... ] -------------------------------------------------------------------------------- 鐢ㄤ簬 80x86 鐨?Microsoft (R) 32 浣?C/C++ 浼樺寲緙栬瘧鍣?15 .00.30729.01 鐗?br>鐗堟潈鎵鏈?C) Microsoft Corporation銆備繚鐣欐墍鏈夋潈鍒┿?br> 鐢ㄦ硶: cl [ 閫夐」... ] 鏂囦歡鍚?.. [ /link 閾炬帴閫夐」... ]
-------------------------------------------------------------------------------- 涓鑸潵璇達紝 灝卞彲浠ュ湪鍛戒護琛屼笅浣跨敤cl浜嗐?br> cl鏂囦歡鐗堟湰涓嶸S鐗堟湰銆乂C浜у搧鐗堟湰銆乢MSC_VER瀹忕殑瀵瑰簲鍏崇郴濡備笅琛?/a>錛?/p>
VS鐗堟湰
VC浜у搧鐗堟湰鍙?/p>
cl鏂囦歡鐗堟湰鍙?/p>
_MSC_VER瀹忕殑鍊?/p>
98
6.x
12.x
1200
2005
8.x
14.x
1400
2008
9.x
15.x
1500
浜屻?嫻嬭瘯澶辮觸 濡傛灉鍑虹幇錛?br>1. “cl涓嶆槸鍐呴儴鎴栧閮ㄥ懡浠わ紝涔熶笉鏄彲榪愯鐨勭▼搴忔垨鎵瑰鐞嗘枃浠躲?#8221; 璇存槑cl涓嶅湪Path鐜鍙橀噺涓?br> 2. 鎵句笉鍒皒xx.dll銆?br>cl鍦≒ath鐜鍙橀噺涓紝 Path涓己灝戝繀瑕佺殑dll鐨勮礬寰勩?br> 3. 涓婅堪嫻嬭瘯閫氳繃錛?浣嗘槸鍦ㄧ紪璇戞椂鍑虹幇鎵句笉鍒板ご鏂囦歡鎴栬呭簱銆?br>璇存槑Path鐜鍙橀噺涓湁cl鍜屽繀瑕乨ll鐨勮礬寰勶紝 浣嗘槸浠嶇己灝戝叾浠栦竴浜涚幆澧冨彉閲忋?br> 榪欎簺鎯呭喌錛?閮介渶瑕佽繘涓姝ラ厤緗幆澧冨彉閲忋?br>
涓夈?閰嶇疆鐜鍙橀噺 涓?1 銆佽瀹夎鍖呭府鍔╂敞鍐岀幆澧冨彉閲?br> VC6鍦ㄥ畨瑁呯殑鏃跺欙紝浼氬脊鍑轟竴涓璇濇錛岃浣犻夋嫨鏄惁娉ㄥ唽VC6鐨勭幆澧冨彉閲忋傚涓嬶細 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 錛堝閫夋錛?nbsp;Register Environment Variables Turn on this option to register environment variables for running Visual C++ tools from the command line. 榛樿澶嶉夋鏄病鏈夐変腑鐨勩?br>濡傛灉閫変腑錛?瀹夎瀹屾瘯鍚庡氨浼氭坊鍔犲繀瑕佺殑鐜鍙橀噺銆?br> 鎵浠ワ紝 涓涓姙娉曟槸閲嶆柊瀹夎VC6錛堝弽姝e緢灝忥紝鐩稿浜嶸C8銆?瀹夎鍗佸垎蹇燂級銆?br> 涓?2 銆?a id=vc6env>鎵嬪伐娣誨姞鐜鍙橀噺 浠C6涓句緥錛屾垜浠彲浠ュ湪 錛?#8220;鎴戠殑鐢佃剳” -> “灞炴?#8221; -> “楂樼駭” -> “鐜鍙橀噺”涓坊鍔犲涓嬪彉閲忥細 %Path%="prefix \Microsoft Visual Studio\VC98\Bin";%Path% cl.exe鎵鍦ㄨ礬寰勩?br> %include%="prefix \Microsoft Visual Studio\VC98\Include";%include% %lib%="prefix \Microsoft Visual Studio\VC98\Lib";%lib% C/C++浠ュ強Platform SDK %include%="prefix \Microsoft Visual Studio\VC98\MFC\Include";%include% %lib%="prefix \Microsoft Visual Studio\VC98\MFC\Lib";%include% MFC %include%="prefix \Microsoft Visual Studio\VC98\ATL\Include";%include% ATL 錛堝叾涓殑prefix 鏄畨瑁呯洰褰曠殑鍓嶇紑錛変箣鍚庡氨鍙互鍦ㄥ懡浠よ涓嬌鐢╟l浜嗐?br> 鍚屾椂錛?VC6銆?銆?閮芥彁渚涗簡涓涓壒澶勭悊vcvars32.bat 銆?br>鎴戜滑鍙互鏌ョ湅鐩稿簲鐨剉cvars32.bat鏈緇堝仛浜嗕粈涔堝伐浣滐紝鑰屾墜宸ュ姞鍏ラ渶瑕佺殑鍙橀噺銆?br>涓嬪唴瀹規憳鑷垜鏈哄櫒涓婄殑vs vars32.bat錛圴C8銆?鐨剉cvars32.bat鏈緇堣皟鐢ㄥ畠浠級錛?br>
vc8 @set PATH = D:\Program Files\Microsoft Visual Studio 8 \Common7\IDE;D:\Program Files\Microsoft Visual Studio 8 \VC\BIN;D:\Program Files\Microsoft Visual Studio 8 \Common7\Tools;D:\Program Files\Microsoft Visual Studio 8 \Common7\Tools\bin;D:\Program Files\Microsoft Visual Studio 8 \VC\PlatformSDK\bin;D:\Program Files\Microsoft Visual Studio 8 \SDK\v2. 0 \bin;C:\WINDOWS\Microsoft.NET\Framework\v2. 0.50727 ;D:\Program Files\Microsoft Visual Studio 8 \VC\VCPackages; % PATH % @set INCLUDE= D:\Program Files\Microsoft Visual Studio 8 \VC\ATLMFC\INCLUDE;D:\Program Files\Microsoft Visual Studio 8 \VC\INCLUDE;D:\Program Files\Microsoft Visual Studio 8 \VC\PlatformSDK\include;D:\Program Files\Microsoft Visual Studio 8 \SDK\v2. 0 \include; % INCLUDE % @set LIB= D:\Program Files\Microsoft Visual Studio 8 \VC\ATLMFC\LIB;D:\Program Files\Microsoft Visual Studio 8 \VC\LIB;D:\Program Files\Microsoft Visual Studio 8 \VC\PlatformSDK\lib;D:\Program Files\Microsoft Visual Studio 8 \SDK\v2. 0 \lib; % LIB % @set LIBPATH= C:\WINDOWS\Microsoft.NET\Framework\v2. 0.50727 ;D:\Program Files\Microsoft Visual Studio 8 \VC\ATLMFC\LIB
vc9 @set PATH = D:\Program Files\Microsoft Visual Studio 9.0 \Common7\IDE;D:\Program Files\Microsoft Visual Studio 9.0 \VC\BIN;D:\Program Files\Microsoft Visual Studio 9.0 \Common7\Tools;C:\WINDOWS\Microsoft.NET\Framework\v3. 5 ;C:\WINDOWS\Microsoft.NET\Framework\v2. 0.50727 ;D:\Program Files\Microsoft Visual Studio 9.0 \VC\VCPackages; % PATH % @set INCLUDE= D:\Program Files\Microsoft Visual Studio 9.0 \VC\ATLMFC\INCLUDE;D:\Program Files\Microsoft Visual Studio 9.0 \VC\INCLUDE; % INCLUDE % @set LIB= D:\Program Files\Microsoft Visual Studio 9.0 \VC\ATLMFC\LIB;D:\Program Files\Microsoft Visual Studio 9.0 \VC\LIB; % LIB % @set LIBPATH= C:\WINDOWS\Microsoft.NET\Framework\v3. 5 ;C:\WINDOWS\Microsoft.NET\Framework\v2. 0.50727 ;D:\Program Files\Microsoft Visual Studio 9.0 \VC\ATLMFC\LIB;D:\Program Files\Microsoft Visual Studio 9.0 \VC\LIB; % LIBPATH %
鍙互鏍規嵁瀹冧滑錛岀粰VC8銆?璁劇疆鐜鍙橀噺銆?br> 涓?3 銆佷嬌鐢╲cvars32.bat 涓婇潰鎻愬埌vcvars32.bat錛屽畠浠殑浣嶇疆濡備笅錛?br> VC6 prefix \Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT VC8 prefix \Microsoft Visual Studio 8\VC\bin\vcvars32.bat VC9 prefix \Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat 闇瑕佹敞鎰忕殑鏄細 榪欎簺鎵瑰鐞嗘枃浠跺彧浼氬湪褰撳墠榪涚▼ 涓緗紙灞閮ㄧ殑錛夌幆澧冨彉閲忥紝涔熷氨鏄錛?br> 1. 鐢╟md錛堟垨鑰卌ommand錛夋墦寮鐨勫懡浠よ紿楀彛涓紝 榪愯鏌愪釜vcvar32.bat涓嬈°?br>閭d箞褰撳墠鍛戒護琛岀獥鍙d腑灝卞彲浠ユ甯鎬嬌鐢╟l錛岀洿鍒板叧闂?br> 2. 鍐欐壒澶勭悊鏂囦歡闇瑕佷嬌鐢?strong style="COLOR: red">call prefix \vcvars32.bat錛岃屼笉鏄洿鎺ュ惎鍔╲cvars32.bat銆?br>鍓嶈呬負褰撳墠榪涚▼錛坈pl.bat鍒涘緩鐨勮繘紼嬶級娣誨姞灞閮ㄤ簬榪涚▼鐜鍙橀噺銆?br>鍚庤呭惎鍔ㄤ竴涓繘紼嬶紝 涓哄叾鍔犲叆鐜鍙橀噺錛?鐒跺悗璇ヨ繘紼嬬珛鍗抽鍑衡斺旀病鏈変換浣曚綔鐢ㄣ?br> 涓?4銆?浣跨敤VSXXCOMNTOOLS鍙橀噺錛圴C8銆?錛?br> 瀵逛簬VC8銆?鏈夊彟涓縐嶆柟寮忊斺斾笉娉ㄥ唽鍏ㄥ眬鐨勶紙緋葷粺鎴栧綋鍓嶇敤鎴鳳級鐜鍙橀噺錛屼粎涓哄綋鍓嶈繘紼嬭緗紙灞閮ㄧ殑錛夌幆澧冨彉閲忋?br>鍥犱負VC8銆?閮藉彲浠?strong>寰堟柟渚?/strong>鐨勪負鍗曚釜榪涚▼璁劇疆鐜鍙橀噺銆?br> 瑙傚療vc8鍜寁c9鐨剉cvars32.bat鐨勫唴瀹癸紙浣嶇疆瑙佷笂錛夛紝 鍙戠幇瀹冧滑閮藉彧鏈変竴琛岋細 "%VS 80COMNTOOLS%vs vars32.bat" "%VS 90COMNTOOLS%vs vars32.bat" VS80COMNTOOLS銆乂S90COMNTOOLS錛堟敞鎰忎笉鏄疺C鑰屾槸VS錛夊垎鍒槸VS2005鍜孷S2008瀹夎鍚庝細璁劇疆鐨勭幆澧冨彉閲忋?br>鎵浠ユ垜浠篃鍙互鍦ㄨ嚜宸辯殑鎵瑰鐞嗕腑錛屽緢鏂逛究鐨勪負褰撳墠榪涚▼璁劇疆闇瑕佺殑鐜鍙橀噺銆傚涓嬶細 call "%VS80COMNTOOLS% vsvars32.bat" 浠ヤ笅cl鍛戒護灝嗘墽琛孷C8鐨刢l銆?br> call "%VS90COMNTOOLS% vsvars32.bat" 浠ヤ笅cl鍛戒護灝嗘墽琛孷C9鐨刢l銆?br>
鍥涖?鎬葷粨 濡傛灉浠呴渶瑕佷嬌鐢ㄦ煇涓増鏈殑VC錛?騫朵笖鍙負鑷繁鏂逛究鑰屼嬌鐢ㄥ懡浠よ錛?鍙互浣跨敤涓婇潰浠諱綍涓縐嶆柟寮忋?br>綆鍗曞綊綰沖涓嬶細 1銆?浣跨敤鍏ㄥ眬鐜鍙橀噺鈥斺斿湪緋葷粺鎴栧綋鍓嶇敤鎴峰彉閲忎腑鍔犲叆闇瑕佺殑鍊箋?br> 1.1 閲嶆柊瀹夎 1.2 鎵嬪伐鍔犲叆 2銆?涓嶄嬌鐢ㄥ叏灞鐜鍙橀噺 鈥斺斿湪鎵цcl鍓嶏紝鍏堜嬌鐢ㄥ搴旂殑vcvars32.bat錛堝懡浠よ紿楀彛涓墽琛屾垨鑰呰剼鏈腑call prefix\vcvars32.bat錛夈?br> 2.1 灝唙cvars32.bat鍔犲叆Path鍙橀噺 2.2 浣跨敤"%VS XX COMNTOOLS%vs vars.bat" (VC8銆?錛?鎴栬?absolutePath\vcvars32.bat 濡傛灉闇瑕佷嬌鐢ㄥ涓増鏈殑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">閰嶇疆msvc鍛戒護琛岀幆澧?緇?鈥斺旂紪鍐檓svc緙栬瘧鑴氭湰 銆?br>
鐩稿叧閾炬帴錛?br> 鈥斺斻?a href="http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.html">閰嶇疆msvc鍛戒護琛岀幆澧?緇?鈥斺旂紪鍐檓svc緙栬瘧鑴氭湰 銆?br>http://www.shnenglu.com/ownwaterloo/archive/2009/04/16/write_compile_script_for_msvc.html
鈥斺斻?a >IDE 涓嶆槸紼嬪簭鍛樼殑鍞竴閫夋嫨錛堜竴錛?/strong>銆?br>http://blog.codingnow.com/2008/09/replacement_of_ide_1.html
鏈?span rel="dc:type" xmlns:dc="http://purl.org/dc/elements/1.1/">浣滃搧閲囩敤鐭ヨ瘑鍏變韓緗插悕-闈炲晢涓氭т嬌鐢?鐩稿悓鏂瑰紡鍏變韓 2.5 涓浗澶ч檰璁稿彲鍗忚 榪涜璁稿彲銆?br> 杞澆璇鋒敞鏄?錛?br>鏂囩珷浣滆?- OwnWaterloo 鍙戣〃鏃墮棿 - 2009騫?4鏈?5鏃?br>鍘熸枃閾炬帴 - http://www.shnenglu.com/ownwaterloo/archive/2009/04/15/environment_for_using_cl_from_command_line.html
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
狠狠色噜噜狠狠狠狠色吗综合 |
亚洲自拍偷拍视频 |
久久综合中文 |
亚洲片在线资源 |
亚洲激情小视频 |
免费观看国产成人 |
一区二区电影免费在线观看 |
亚洲免费观看高清完整版在线观看熊 |
欧美日韩免费观看一区二区三区 |
亚洲视频精选在线 |
欧美一区在线视频 |
亚洲激情精品 |
一本久道久久综合狠狠爱 |
国产精品一区视频网站 |
久久综合久久综合久久 |
欧美肥婆在线 |
欧美中文字幕视频在线观看 |
久久久久久夜 |
亚洲午夜性刺激影院 |
先锋亚洲精品 |
99精品福利视频 |
日韩一级裸体免费视频 |
久久久99国产精品免费 |
麻豆成人综合网 |
亚洲欧美一区二区在线观看 |
久久久久久久尹人综合网亚洲 |
99re66热这里只有精品3直播
|
亚洲精品裸体 |
亚洲欧美日韩国产一区二区三区 |
亚洲国产欧美久久 |
亚洲在线黄色 |
在线亚洲国产精品网站 |
欧美一级播放 |
亚洲永久精品大片 |
免费久久久一本精品久久区 |
亚洲欧美视频在线观看 |
久久综合999 |
久久精品国产亚洲高清剧情介绍 |
欧美精品日韩精品 |
美女亚洲精品 |
国产在线观看精品一区二区三区 |
亚洲精品欧洲 |
激情一区二区 |
午夜欧美不卡精品aaaaa |
夜夜嗨av一区二区三区网页 |
久久三级福利 |
久久嫩草精品久久久久 |
国产精品最新自拍 |
一本大道久久精品懂色aⅴ |
亚洲国产乱码最新视频
|
欧美成年视频 |
国产一区视频网站 |
亚洲欧美大片 |
欧美亚洲在线观看 |
国产精品大片 |
99综合在线 |
一区二区三区欧美成人 |
欧美黄色网络 |
亚洲韩国精品一区 |
亚洲国语精品自产拍在线观看 |
久久精品成人一区二区三区 |
久久久av水蜜桃 |
国产日韩欧美一区二区三区四区 |
亚洲综合另类 |
欧美在线播放高清精品 |
国产热re99久久6国产精品 |
亚洲影视在线 |
久久精视频免费在线久久完整在线看 |
国产精品狼人久久影院观看方式 |
亚洲视频www |
香蕉久久夜色精品国产 |
国产欧美欧洲在线观看 |
欧美在线免费视屏 |
久久久噜噜噜久久久 |
韩日欧美一区 |
蜜臀久久99精品久久久久久9 |
牛牛影视久久网 |
亚洲日本成人网 |
欧美日韩视频专区在线播放
|
亚洲美女av黄 |
亚洲欧美999 |
国产一区二区无遮挡 |
久久久久久精 |
欧美日韩国产综合久久 |
午夜精品理论片 |
国产精品嫩草久久久久 |
欧美专区亚洲专区 |
亚洲第一区在线观看 |
一区二区三区四区五区在线 |
国产精品一级 |
久久一二三四 |
亚洲裸体视频 |
久久久久欧美 |
亚洲精品你懂的 |
国产欧美一区二区三区久久人妖 |
久久全球大尺度高清视频 |
亚洲激情在线 |
久久精品夜色噜噜亚洲aⅴ |
亚洲黄色毛片 |
国产欧美另类 |
欧美黄色aaaa |
久久国产88 |
日韩视频一区二区三区在线播放 |
久久精品国产999大香线蕉 |
日韩视频永久免费 |
国产日韩综合一区二区性色av |
嫩草成人www欧美 |
亚洲男人第一网站 |
亚洲欧洲在线观看 |
久久久亚洲影院你懂的 |
亚洲深夜福利 |
91久久夜色精品国产网站 |
国产精品视频xxxx |
欧美精品午夜视频 |
久久久久久久高潮 |
亚洲欧美国产视频 |
亚洲免费福利视频 |
91久久精品一区二区三区 |
久久婷婷国产综合精品青草
|
国产午夜精品美女视频明星a级 |
鲁大师影院一区二区三区 |
午夜精品国产更新 |
一区二区三区 在线观看视 |
欧美福利影院 |
另类天堂av |
久久精品中文 |
久久精品国产久精国产一老狼 |
国产精品99久久99久久久二8 |
亚洲成在线观看 |
国产亚洲精品久久久久婷婷瑜伽 |
国产精品国产三级国产普通话99
|
国产精品视频成人 |
欧美日韩亚洲一区二 |
欧美激情在线有限公司 |
蜜乳av另类精品一区二区 |
久久精品一区二区三区中文字幕 |
午夜视频在线观看一区二区三区 |
亚洲视频一二 |
亚洲视频视频在线 |
亚洲一区在线免费 |
在线视频你懂得一区 |
日韩视频中文字幕 |
亚洲乱亚洲高清 |
99精品视频一区二区三区 |
日韩午夜激情av |
一区二区精品国产 |
亚洲永久免费 |
欧美一区二区性 |
久久久久9999亚洲精品 |
久久免费精品日本久久中文字幕 |
久久久噜噜噜久久中文字幕色伊伊 |
欧美尤物一区 |
免费在线播放第一区高清av |
欧美77777 |
欧美涩涩网站 |
欧美.www |
亚洲专区欧美专区 |
久久久99久久精品女同性 |
久久久精品免费视频 |
麻豆成人在线观看 |
亚洲国产精品999 |
妖精成人www高清在线观看 |
亚洲先锋成人 |
久久精品国产综合 |
欧美激情1区 |
国产精品美女久久久久久久 |
国产日韩欧美精品综合 |
在线日韩欧美视频 |
宅男精品视频 |
久久久久久欧美 |
亚洲国产小视频在线观看 |
亚洲视频一区二区 |
久久久五月婷婷 |
欧美三区美女 |
激情成人av |
亚洲午夜久久久 |
欧美1区免费 |
一区二区久久 |
久久最新视频 |
国产精品亚发布 |
亚洲人成网站精品片在线观看 |
亚洲男人天堂2024 |
欧美国产综合一区二区 |
亚洲综合视频网 |
欧美国产视频日韩 |
国产偷久久久精品专区 |
亚洲伦伦在线 |
久久夜色精品国产噜噜av |
99在线精品视频 |
久久综合狠狠 |
国产日产高清欧美一区二区三区 |
亚洲人成小说网站色在线 |
久久精品91 |
9人人澡人人爽人人精品 |
蜜臀久久久99精品久久久久久
|
欧美激情精品久久久久久久变态 |
国产精品日本 |
在线亚洲一区观看 |
欧美肥婆bbw |
欧美在线视频全部完 |