锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产欧美一区二区三区同亚洲 ,欧美大片专区,国产在线精品二区http://www.shnenglu.com/haosola/C++zh-cnFri, 03 Oct 2025 18:35:36 GMTFri, 03 Oct 2025 18:35:36 GMT60C++灝佽dll緇機#絳夊叾浠栬璦浣跨敤鐐規淮http://www.shnenglu.com/haosola/archive/2016/03/31/213164.htmlHAOSOLAHAOSOLAThu, 31 Mar 2016 09:54:00 GMThttp://www.shnenglu.com/haosola/archive/2016/03/31/213164.htmlhttp://www.shnenglu.com/haosola/comments/213164.htmlhttp://www.shnenglu.com/haosola/archive/2016/03/31/213164.html#Feedback0http://www.shnenglu.com/haosola/comments/commentRss/213164.htmlhttp://www.shnenglu.com/haosola/services/trackbacks/213164.html銆銆C++鍦ㄥ紑鍙戝簳灞傜▼搴忔椂錛屾槸涓涓笉閿欑殑閫夋嫨銆備笉榪囨兂鐢–++蹇熷仛涓涓竴鑸編瑙傜殑鐣岄潰錛屼笉濡侰#銆乂B絳夎璦蹇熴傚綋鐒訛紝濡傛灉浣犳兂鍋氫竴涓釜鎬х粴涓界殑鐣岄潰錛孋++瀹屽叏鏄彲浠ョ殑銆?

銆銆涓嶈繃蹇熷紑鍙戞椂錛屾垜浠茍涓嶄細灞闄愪簬涓縐嶈璦錛屽緢澶氭椂鍊欓兘鏄販鐢ㄥ縐嶈璦錛屽疄鐜頒竴涓己澶у張緇氫附鐨刄I鐨勮蔣浠訛紝鑰屼笖鍙互淇濊瘉寮鍙戦熷害寰堝揩銆?

銆銆姣忎竴縐嶈璦閮芥湁鐙壒鐨勪紭鍔匡紝鏈変紭鍔跨殑閮ㄥ垎鎭版伆灝辨槸寰堥傚悎搴旂敤鐨勫満鏅紝鍥犳緙栫爜瀹炵幇鏂逛究蹇熴傚茍涓嶆槸璇碈++寮鍙戠▼搴忓氨涓瀹氬緢鎱紝涔熶笉鏄C#寮鍙戠▼搴忓氨涓瀹氬揩銆傚鏋滆鍋氬亸搴曞眰鐨勫姛鑳斤紝寰寰C++瀹炵幇璧鋒潵榪樻槸寰堝揩錛岃屼笖紼嬪簭鐨勬墽琛屾晥鐜囦篃鏄緢楂樼殑銆傚浜庡簳灞傜殑鎿嶄綔錛屼嬌鐢–#絳夎璦鏉ヨ錛屽氨闈炲父涓嶆柟渚褲傛瘮濡傝皟鐢ㄤ釜緋葷粺API鍑芥暟錛孋/C++鍖呭惈涓涓ご鏂囦歡錛岀劧鍚庣洿鎺ュ啓鍑芥暟鍚嶇О鍗沖彲錛岃屽叾浠栬璦鍒欐瘮杈冮夯鐑︿簡銆傚洜涓轟粬浠閫氳繃涓灞傚嚱鏁板簱鐨勫皝瑁呴棿鎺ヨ皟鐢ㄥ簳灞侫PI鐨勶紝鎵浠ヤ篃灝卞緢楹葷儲浜嗐?

銆銆涓嶈繃錛屾鏄皝瑁呯殑澶氾紝浣跨敤鐨勫簱澶氾紝瀵逛簬C#榪欑被璇█鏉ヨ錛屽疄鐜扮晫闈㈠氨寰堝揩浜嗐傛墍浠ヨ錛屽仛UI鏄粬浠殑闀垮錛屾墍浠ヤ篃寰堢畝鍗曘?

銆銆閭d箞鏃㈢劧濡傛錛屾垜浠氨灝咰++鍜孋#緇撳悎鏉ヤ嬌鐢ㄥ氨寰堝ソ錛岃繖鍙仛寮哄己鑱斿悎錛侀夋嫨C#涔熸槸鍥犱負璇硶涓婂拰C++寰堢浉浼鹼紝VB榪欎簺璇█璇硶鍜孋++鐩稿樊寰堝ぇ錛屼笉涔犳儻銆?/font>

銆銆閭d箞C++鍋氬簳灞傚姛鑳藉皝瑁呭拰C#鐣岄潰寮鍙戝浣曟販鍚堣搗鏉ュ憿錛熻繖涓及璁℃槸澶у鏈涓哄叧蹇冪殑涓涓棶棰樺惂銆傚湪瀹炵幇鐣岄潰鏃訛紝C#鍙互閫夋嫨wpf鍋氱晫闈紝闈炲父鐨勪笉閿欍傚涔犻毦搴︿篃涓嶅ぇ錛孋#浠g爜錛屽浜嶤++鐔熸倝鐨勪漢錛屼篃瑙夊緱寰堝ソ鎺屾彙銆侰++浠庝笟鑰呭幓浣跨敤C#闂涓嶅ぇ錛屽彧鏄細澶氬悙妲戒竴涓婥#鐨勪笉鏂逛究鎿嶄綔鎸囬拡涔嬬被鐨勶紝涓嶈繃C#鐨剆tring紜疄鎸轟笉閿欑殑錛屾垜铔枩嬈€?

銆銆C++灝佽浠g爜鎴恉ll褰㈠紡鎻愪緵緇機#絳夎璦浣跨敤銆侰++浠g爜涓紝浣犲彲浠ュ敖鎯呯殑浣跨敤綾繪潵瀹屾垚鍔熻兘錛屽彧鏄湪瀵煎嚭鍑芥暟鏃訛紝鍙鎻愪緵C璇█鐨勫嚱鏁幫紝鑰屼笉瑕佸皢綾誨鍑猴紝涓嶅緩璁繖涔堝仛銆傝屽鍑哄嚱鏁版椂錛屼負浜嗚鏇村璇█鏂逛究浣跨敤dll錛屽鍑哄嚱鏁頒嬌鐢–璋冪敤綰﹀畾瀵煎嚭鍑芥暟銆備竴鑸璦閮芥敮鎸佹爣鍑咰鍑芥暟璋冪敤綰﹀畾銆?

銆銆鏇村鐨勭粏鑺傦紝灝變笉鍦ㄦ湰鏂囪榪般傝繖閲屽氨鏄榪版х殑緇欏ぇ瀹朵竴涓嵃璞★紝璁╀綘鐭ラ亾鍐欑▼搴忚繕鍙互榪欐牱鐜╁摝銆備笉瑕佸皢鑷繁鐨勬濈淮灞闄愪簬涓縐嶈璦錛屼笉瑕佸啀涓哄涔犲摢涓縐嶈璦鑰岀籂緇擄紝涔熶笉瑕佷負鍝竴縐嶈璦濂借屼簤鎵с?

銆銆涓嶈繃錛屽垵瀛﹁呮昏閫夊畾涓縐嶈璦浣滀負鍑哄彂錛岃屾垜鐨勫緩璁椂錛屽涔犳椂灝藉彲鑳藉熀紜鑰屽叏闈㈢殑瀛︿範銆傚湪鍏ラ棬鐨勬椂鍊欙紝鐩稿鏉ヨ鏄瘮杈冩矇寰椾笅蹇冨涔犵殑銆傛墍浠ラ夋嫨瀛︿範C++浣滀負鍏ラ棬璇█鏄潪甯鎬笉閿欑殑閫夋嫨銆傚綋浣燙++瀛︾殑涓嶉敊鐨勬椂鍊欙紝鍐嶅鍏朵粬璇█鍋氬簲鐢ㄥ紑鍙戯紝閮芥槸杞繪澗鎺屾彙鐨勩備絾鏄鏋滃伐浣滀簡錛屽啀鏉ュ涔燙++錛岀簿鍔涙湁闄愶紝鑰屼笖寰堥毦闈欎笅蹇冨涔犲張澶у張鍏ㄥ張緇嗙殑C++銆?

銆銆鐒惰屽仛搴曞眰寮鍙戞椂錛孋++鏃犵枒鏄竴涓緢濂界殑閫夋嫨銆傚鏋淐++鍊熺敤鐣岄潰搴擄紝鑷劧涔熸槸鍙互鍋氬緢涓嶉敊鐨刄I鐨勩傚叾浠栬璦涔嬫墍浠ュ彲浠ュ揩閫熷紑鍙戯紝涔熷氨鏄湁寰堝搴撶殑鏀寔銆傚綋C++鐨勭涓夋柟搴撳浜嗭紝寮鍙戦熷害鑷劧涔熸槸寰堜笉閿欑殑銆?

銆銆濡傛灉浣犳湁涓浜涗笉閿欑殑鎯蟲硶錛屽氨鍒癈++鎶鏈綉鍒嗕韓涓嬪惂銆傛垜浼氫粩緇嗛槄璇繪瘡涓涓瓧閫忛湶鍑烘潵鐨勬皵鎭紝緇欎綘鍒嗕韓鎴戠殑鐩稿叧緇忛獙錛屽敖閲忓紑闃斾綘鐨勬濈淮鑼冨洿錛屼竴璧瘋繘姝ャ?

鍏ㄨ緗?/strong>,www.hz1s.com 



HAOSOLA 2016-03-31 17:54 鍙戣〃璇勮
]]>
鍒╃敤C++ RAII鎶鏈嚜鍔ㄥ洖鏀跺爢鍐呭瓨http://www.shnenglu.com/haosola/archive/2014/11/16/208891.htmlHAOSOLAHAOSOLASun, 16 Nov 2014 01:05:00 GMThttp://www.shnenglu.com/haosola/archive/2014/11/16/208891.htmlhttp://www.shnenglu.com/haosola/comments/208891.htmlhttp://www.shnenglu.com/haosola/archive/2014/11/16/208891.html#Feedback0http://www.shnenglu.com/haosola/comments/commentRss/208891.htmlhttp://www.shnenglu.com/haosola/services/trackbacks/208891.html銆銆甯擱亣鍒扮殑鍔ㄦ佸唴瀛樺洖鏀墮棶棰?/strong>

銆銆鍦–++鐨勭紪紼嬭繃紼嬩腑錛屾垜浠粡甯擱渶瑕佺敵璇蜂竴鍧楀姩鎬佸唴瀛橈紝鐒跺悗褰撶敤瀹屼互鍚庡皢鍏墮噴鏀俱傞氬父鑰岃█錛屾垜浠殑浠g爜鏄繖鏍風殑錛?br />
銆銆1: void func()

銆銆2: {

銆銆3: //allocate a dynamic memory

銆銆4: int *ptr = new int;

銆銆5:

銆銆6: //use ptr

銆銆7:

銆銆8: //release allocated memory

銆銆9: delete ptr;

銆銆10: ptr = NULL;

銆銆11: }

銆銆濡傛灉榪欎釜鍑芥暟func()閫昏緫姣旇緝綆鍗曪紝闂涓嶅ぇ錛屼絾鏄綋涓棿鐨勪唬鐮佹湁鍙兘鎶涘嚭寮傚父鏃訛紝涓婇潰鐨勪唬鐮佸氨浼氫駭鐢熷唴瀛樻硠闇?memory leak)錛屽涓嬮潰浠g爜涓11琛屽拰12琛屽皢涓嶄細琚墽琛屻傚綋鐒舵湁鐮佸弸浼氳鐢╰ry-catch鍖呰搗鏉ュ氨鍙互浜嗭紝瀵癸紝娌¢敊錛屼絾鏄唬鐮佷腑鍒板鐨則ry-catch涔熸尯琚漢璇熺梾鐨?strong>SAT絳旀
www.sats686.com

銆銆1: void func()

銆銆2: {

銆銆3: //allocate a dynamic memory

銆銆4: int *ptr = new int;

銆銆5:

銆銆6: throw “error”; //just an example

銆銆7:

銆銆8: //use ptr

銆銆9:

銆銆10: //release allocated memory

銆銆11: delete ptr;

銆銆12: ptr = NULL;

銆銆13: }

銆銆鑰屼笖褰撳嚱鏁版湁澶氫釜榪斿洖璺緞鏃訛紝闇瑕佸湪姣忎釜return鍓嶉兘瑕佽皟鐢╠elete鍘婚噴鏀捐祫婧愶紝浠g爜涔熶細鍙樼殑涓嶄紭闆呬簡銆?br />
銆銆1: void func()

銆銆2: {

銆銆3: //allocate a dynamic memory

銆銆4: int *ptr = new int;

銆銆5:

銆銆6: if (...)

銆銆7: {

銆銆8: //...a

銆銆9:

銆銆10: //release allocated memory

銆銆11: delete ptr;

銆銆12: ptr = NULL;

銆銆13: return;

銆銆14: } else if (....)

銆銆15: {

銆銆16: //...b

銆銆17:

銆銆18: //release allocated memory

銆銆19: delete ptr;

銆銆20: ptr = NULL;

銆銆21: return;

銆銆22: }

銆銆23:

銆銆24: //use ptr

銆銆25:

銆銆26: //release allocated memory

銆銆27: delete ptr;

銆銆28: ptr = NULL;

銆銆29: }

銆銆閴翠簬姝わ紝鎴戜滑灝辮鎯沖姙娉曞埄鐢–++鐨勪竴浜涜璦鐗規э紝鍦ㄥ嚱鏁伴鏍堟椂鑳藉灝嗗眬閮ㄧ敵璇風殑鍔ㄦ佸唴瀛樿嚜鍔ㄩ噴鏀炬帀銆傜啛鎮塁++鐨勭爜鍙嬩滑閮界煡閬擄紝褰撲竴涓璞¢鍑哄叾瀹氫箟鐨勪綔鐢ㄥ煙鏃訛紝浼氳嚜鍔ㄨ皟鐢ㄥ畠鐨勬瀽鏋勫嚱鏁般備篃灝辨槸璇村鏋滄垜浠湪鍑芥暟鍐呭畾涔変竴涓眬閮ㄥ璞★紝鍦ㄥ嚱鏁拌繑鍥炲墠錛岀敋鑷蟲湁寮傚父浜х敓鏃訛紝榪欎釜灞閮ㄥ璞$殑鏋愭瀯鍑芥暟閮戒細鑷姩璋冪敤銆傚鏋滄垜浠兘澶熷皢閲婃斁璧勬簮鐨勪唬鐮佷氦浠樼粰榪欎釜瀵硅薄鐨勬瀽鏋勫嚱鏁幫紝鎴戜滑灝卞彲浠ュ疄鐜拌祫婧愮殑鑷姩鍥炴敹銆傝繖綾繪妧鏈紝閫氬父琚О涓篟AII (鍒濆鍖栦腑鑾峰彇璧勬簮)鎵樼絳旀


銆銆浠涔堟槸RAII浠ュ強鍑犱釜渚嬪瓙

銆銆鍦–++絳夐潰鍚戝璞¤璦涓紝涓轟簡綆$悊灞閮ㄨ祫婧愮殑鍒嗛厤浠ュ強閲婃斁(resource allocation and deallocation)錛屽疄鐜板紓甯稿畨鍏?exception-safe)銆侀伩鍏嶅唴瀛樻硠闇茬瓑闂錛孋++涔嬬埗Bjarne Stroustrup鍙戞槑浜嗕竴縐嶅彨鍋?#8221;鍒濆鍖栦腑鑾峰彇璧勬簮“ (RAII, Resource Acquisition Is Initialization錛屼篃鍙互鍙仛Scope-Bound Resource Management)鐨勬妧鏈傜畝鍗曟潵璇達紝瀹冪殑鐩殑灝辨槸鍒╃敤涓涓眬閮ㄥ璞★紝鍦ㄨ繖涓璞$殑鏋勯犲嚱鏁板唴鍒嗛厤璧勬簮錛岀劧鍚庡湪鍏舵瀽鏋勫嚱鏁板唴閲婃斁璧勬簮銆傝繖鏍鳳紝褰撹繖涓眬閮ㄥ璞¢鍑轟綔鐢ㄥ煙鏃訛紝瀹冩墍瀵瑰簲鐨勭殑璧勬簮鍗沖彲鑷姩閲婃斁銆傚湪瀹炵幇涓婏紝瀹冮氬父鏈変笁涓壒鐐癸細

銆銆鍒涘緩涓涓壒孌婄被錛屽湪鍏舵瀯閫犲嚱鏁板垵鐢寵璧勬簮;

銆銆灝佽鐩爣瀵硅薄錛屽皢鐢寵璧勬簮鐨勭洰鏍囧璞′綔涓鴻繖涓壒孌婄被鐨勬垚鍛樺彉閲?

銆銆鍦ㄨ繖涓被鐨勬瀽鏋勫嚱鏁板唴錛岄噴鏀捐祫婧愩?br />
銆銆涓涓吀鍨嬬殑渚嬪瓙灝辨槸鏍囧噯搴撲腑鎻愪緵鐨勬ā鏉跨被std::auto_ptr銆傚鍦ㄣ奀++紼嬪簭璁捐璇█銆?銆奣he C++ Programming Language, Special Edition銆? Bjarne Stroustrup钁楋紝瑁樺畻鐕曡瘧)涓327欏墊墍鎻忚堪鐨?strong>SAT絳旀


銆銆1: template

銆銆2: class std::auto_ptr {

銆銆3:

銆銆4: public:

銆銆5: //鍦ㄦ瀯閫犲嚱鏁頒腑錛岃幏寰楃洰鏍囨寚閽堢殑綆$悊鏉?br />
銆銆6: explicit auto_ptr(X *p = 0) throw() { ptr = p; }

銆銆7: //鍦ㄦ瀽鏋勫嚱鏁頒腑錛岄噴鏀劇洰鏍囨寚閽?br />
銆銆8: ~auto_ptr() throw() { delete ptr; }

銆銆9:

銆銆10: //...

銆銆11:

銆銆12: //閲嶈*鍜?>榪愮畻絎︼紝浣縜uto_ptr瀵硅薄鍍忕洰鏍囨寚閽坧tr涓鏍蜂嬌鐢?br />
銆銆13: X& operator*() const throw() { return *ptr; }

銆銆14: X* operator->() const throw() { return ptr; }

銆銆15:

銆銆16: //鏀懼純瀵圭洰鏍囨寚閽堢殑綆$悊鏉?br />
銆銆17: X* release() throw() { X* t = ptr; ptr = 0; return t; }

銆銆18:

銆銆19: private:

銆銆20: X *ptr;

銆銆21: };

銆銆鎯寵浣跨敤瀹冿紝闈炲父綆鍗曪紝渚嬪

銆銆1: #include

銆銆2:

銆銆3: void func()

銆銆4: {

銆銆5: std::auto_ptr p(new int);

銆銆6:

銆銆7: //use p just like ptr

銆銆8:

銆銆9: return;

銆銆10: }

銆銆鍙︿竴涓緥瀛愶紝鏄埄鐢℅CC涓殑cleanup attribute銆傚畠鍙互鎸囧畾涓涓嚱鏁幫紝鍦ㄨ鍙橀噺閫鍑轟綔鐢ㄥ煙鏃跺彲浠ユ墽琛屻備緥濡俉ikipedia涓婃彁鍒扮殑瀹?br />
銆銆1: #define RAII_VARIABLE(vartype,varname,initval,dtor) \

銆銆2: void _dtor_ ## varname (vartype * v) { dtor(*v); } \

銆銆3: vartype varname __attribute__((cleanup(_dtor_ ## varname))) = (initval)

銆銆鎴戜滑鍙互榪欐牱浣跨敤錛屼緥濡?br />
銆銆1: void example_usage() {

銆銆2: RAII_VARIABLE(FILE*, logfile, fopen("logfile.txt", "w+"), fclose);

銆銆3: fputs("hello logfile!", logfile);

銆銆4: }

銆銆榪樻湁涓涓緥瀛愶紝鏄湪鍒樻湭楣忕殑鍗氬鏂囩珷”C++11 (鍙婄幇浠++椋庢牸)鍜屽揩閫熻凱浠e紡寮鍙?#8220;涓殑”璧勬簮綆$悊“涓鑺備腑鐪嬪埌鐨勶紝浠栧熷姪C++11鐨剆td::function瀹炵幇浜嗚繖涓鐗規с傛劅鍏磋叮鐨勭爜鍙嬪彲浠ュ埌浠栧崥瀹㈠唴闃呰銆?br />
銆銆絎旇呴噰鐢ㄧ殑鏂規硶

銆銆瀵逛簬new/delete錛屼嬌鐢ㄤ笂闈㈡彁鍒扮殑std::auto_ptr灝卞彲浠ヤ簡錛屼絾鏄浜巒ew/delete[]涓涓姩鎬佺殑涓緇存暟緇勶紝鐢氳嚦浜岀淮鏁扮粍錛宎uto_ptr灝辨棤鑳戒負鍔涗簡銆傝屼笖鍦ㄤ竴浜涢」鐩腑錛岀壒鍒槸涓浜涙湁鐫鎮犱箙鍘嗗彶鐨勪唬鐮佷腑錛岃繕瀛樺湪鐫浣跨敤malloc, new娣風敤鐨勭幇璞°傛墍浠ョ瑪鑰呰璁′簡涓涓猘uto_free_ptr綾伙紝瀹炵幇鐩爣璧勬簮鐨勮嚜鍔ㄥ洖鏀躲傚畠鐨勫疄鐜版瘮杈冪畝鍗曪紝鍙埄鐢ㄤ簡RAII鐨勭涓変釜鐗圭偣——”鍦ㄧ被鐨勬瀽鏋勫嚱鏁板唴閲婃斁璧勬簮”錛屼絾鏈変竴涓紭鐐規槸鍙互鍦ㄧ敵璇峰爢鍐呭瓨浠g爜鍓嶄嬌鐢?strong>鎵樼絳旀

銆銆浠g爜濡備笅錛?br />
銆銆1: //auto_free_ptr is only used for automation free memory

銆銆2: template

銆銆3: class auto_free_ptr

銆銆4: {

銆銆5: public:

銆銆6: typedef enum {invalid, new_one, new_array, alloc_mem} EFLAG;

銆銆7: auto_free_ptr() { initialize(); }

銆銆8: ~auto_free_ptr(){ free_ptr(); }

銆銆9:

銆銆10: ///set the pointer needed to automatically free

銆銆11: inline void set_ptr(T** new_ptr_address, EFLAG new_eflag)

銆銆12: { free_ptr(); p_ptr = new_ptr_address; eflag = new_eflag; }

銆銆13:

銆銆14: ///give up auto free memory

銆銆15: inline void give_up() { initialize(); }

銆銆16:

銆銆17: protected:

銆銆18: inline void initialize() { p_ptr = NULL; eflag = invalid; }

銆銆19: inline void free_ptr() throw()

銆銆20: {

銆銆21: if(!p_ptr || !(*p_ptr)) return;

銆銆22:

銆銆23: switch(eflag)

銆銆24: {

銆銆25: case alloc_mem: { free(*p_ptr), (*p_ptr) = NULL, p_ptr = NULL; break; }

銆銆26: case new_one: { delete (*p_ptr), (*p_ptr) = NULL, p_ptr = NULL; break; }

銆銆27: case new_array: { delete[] (*p_ptr),(*p_ptr) = NULL, p_ptr = NULL; break; }

銆銆28: }

銆銆29: }

銆銆30:

銆銆31: protected:

銆銆32: T** p_ptr; //!< pointer to the address of the set pointer needed to automatically free

銆銆33: EFLAG eflag; //!< the type of allocation

銆銆34:

銆銆35: private:

銆銆36: DISABLE_COPY_AND_ASSIGN(auto_free_ptr);

銆銆37: };
銆銆涓轟簡浣跨敤鏂逛究錛屽皝瑁呬袱涓畯錛?br />
銆銆1: // auto-free macros are mainly used to free the allocated memory by some local variables in the internal of function-body

銆銆2: #define AUTO_FREE_ENABLE( class, ptrName, ptrType ) \

銆銆3: auto_free_ptr auto_free_##ptrName; \

銆銆4: auto_free_##ptrName.set_ptr(&ptrName,auto_free_ptr::ptrType)

銆銆5:

銆銆6: #define AUTO_FREE_DISABLE( ptrName ) auto_free_##ptrName.give_up()

銆銆浣跨敤璧鋒潵寰堢畝鍗曪紝渚嬪

銆銆1: void func(int nLftCnt, int nRhtCnt)

銆銆2: {

銆銆3: if (!nLftCnt && !nRhtCnt)

銆銆4: return;

銆銆5:

銆銆6: unsigned *pLftHashs = NULL;

銆銆7: unsigned *pRhtHashs = NULL;

銆銆8:

銆銆9: //鍦ㄧ敵璇峰爢鍐呭瓨涔嬪墠錛屼嬌鐢╝uto_free_ptr

銆銆10: AUTO_FREE_ENABLE(unsigned, pLftHashs, new_array);

銆銆11: AUTO_FREE_ENABLE(unsigned, pRhtHashs, new_array);

銆銆12:

銆銆13: //....

銆銆14:

銆銆15: if (nLftCnt)

銆銆16: {

銆銆17: pLftHashs = new unsigned[nLftCnt];

銆銆18: //...a

銆銆19: }

銆銆20:

銆銆21: if (nRhtCnt)

銆銆22: {

銆銆23: pRhtHashs = new unsigned[nRhtCnt];

銆銆24: //...b

銆銆25: }

銆銆26:

銆銆27: //....

銆銆28:

銆銆29: if (...)

銆銆30: {

銆銆31: //鍥犱負涓嬮潰榪欎釜鍑芥暟鍙互閲婃斁璧勬簮錛屾墍浠ュ湪瀹冨墠闈㈡斁寮冨鐩爣鎸囬拡鐨勭鐞嗘潈

銆銆32: AUTO_FREE_DISABLE(pLftHashs);

銆銆33: AUTO_FREE_DISABLE(pRhtHashs);

銆銆34:

銆銆35: //榪欎釜鍑芥暟鍙互閲婃斁璧勬簮

銆銆36: free_hash_arrays(pLftHashs, pRhtHashs);

銆銆37: }

銆銆38: }

銆銆鍚屾牱鐨勶紝鏈夋椂鎴戜滑闇瑕佺敵璇蜂竴涓姩鎬佷簩緇存暟緇勶紝鎵浠ヤ篃瀹炵幇涓涓搴旂殑auto_free_2D_ptr

銆銆1: //auto_free_2D_ptr is only used for automation free memory of 2D array

銆銆2: template

銆銆3: class auto_free_2D_ptr

銆銆4: {

銆銆5: public:

銆銆6: typedef enum {invalid, new_one, new_array, alloc_mem} EFLAG;

銆銆7: auto_free_2D_ptr() { initialize(); }

銆銆8: ~auto_free_2D_ptr() { free_ptr(); }

銆銆9:

銆銆10: ///set the pointer needed to automatically free

銆銆11: inline void set_ptr( T** new_ptr_address,EFLAG new_eflag, int new_length_row )

銆銆12: { free_ptr(); p_ptr = new_ptr_address; eflag = new_eflag; length_row = new_length_row; }

銆銆13:

銆銆14: //give up auto free memory

銆銆15: inline void give_up() { initialize(); }

銆銆16:

銆銆17: protected:

銆銆18: inline void initialize() { p_ptr = NULL; eflag = invalid; length_row = 0;}

銆銆19: inline void free_ptr() throw()

銆銆20: {

銆銆21: if(!p_ptr || !(*p_ptr)) return;

銆銆22:

銆銆23: for(int i = 0; i < length_row; i++)

銆銆24: {

銆銆25: if(!(*p_ptr)[i]) continue;

銆銆26: switch(eflag)

銆銆27: {

銆銆28: case alloc_mem: { free((*p_ptr)[i]); break; }

銆銆29: case new_one: { delete (*p_ptr)[i]; break; }

銆銆30: case new_array: { delete[] (*p_ptr)[i]; break; }

銆銆31: }

銆銆32: (*p_ptr)[i] = NULL;

銆銆33: }

銆銆34: switch(eflag)

銆銆35: {

銆銆36: case alloc_mem: { free((*p_ptr)); break; }

銆銆37: default: { delete[] (*p_ptr); break; }

銆銆38: }

銆銆39: (*p_ptr) = NULL, p_ptr = NULL;

銆銆40: }

銆銆41:

銆銆42: protected:

銆銆43: T** p_ptr; //!< pointer to the address of the set pointer needed to automatically free

銆銆44: EFLAG eflag; //!< the type of allocation

銆銆45: int length_row; //!< the row length such as ptr[length_row][length_col]

銆銆46:

銆銆47: private:

銆銆48: DISABLE_COPY_AND_ASSIGN(auto_free_2D_ptr);

銆銆49: };

銆銆50:

銆銆51: #define AUTO_FREE_2D_ENABLE( class, ptrName, ptrType, rowNum ) \

銆銆52: auto_free_2D_ptr auto_free_##ptrName; \

銆銆53: auto_free_##ptrName.set_ptr(&ptrName,auto_free_2D_ptr::ptrType, rowNum)

銆銆54:

銆銆55: #define AUTO_FREE_2D_DISABLE( ptrName ) AUTO_FREE_DISABLE( ptrName )

銆銆涓嬮潰鏄釜渚嬪瓙

銆銆1: void func(int row, int col)

銆銆2: {

銆銆3: if (!row && !col)

銆銆4: return;

銆銆5:

銆銆6: int **ptr = new int*[ row ];

銆銆7: for( int r = 0; r < row; ++r ) { ptr[r] = new int[ col ];}

銆銆8:

銆銆9: AUTO_FREE_2D_ENABLE( int, ptr, new_array, row );

銆銆10:

銆銆11: //....

銆銆12: }

銆銆鍒拌繖閲屽氨緇撴潫浜嗭紝鏈変簺鐮佸弸鍙兘浼氳錛屼綍蹇呰繖涔堥夯鐑︼紝boost鍐呮湁寰堝鏅鴻兘鎸囬拡渚涢夋嫨錛岀敤share_ptr, scoped_ptr, scoped_array錛寀nique_ptr, auto_ptr 涓殑涓涓笉灝辮浜嗗悧? 娌¢敊!濡傛灉浣犳鍦ㄥ紑鍙戠殑浠g爜涓紝鍏佽鐢╞oost錛屽茍涓斿湪鐩稿叧紼嬪簭鎺ュ彛緇熶竴閮界敤鏅鴻兘鎸囬拡鏉ョ鐞嗐佷笉浼氱敤鍒版簮瀵硅薄鎸囬拡鐨勮瘽錛屽綋鐒朵紭鍏堥塨oost錛屼絾鏄綋浣犵殑浠g爜涓敱浜庡巻鍙插師鍥狅紝鏈変簺鎺ュ彛涓嶅彲鍙樻洿錛屼笖new/delete, malloc/free閮藉瓨鍦紝鑰屼笖渚濈劧闇瑕佷嬌鐢ㄦ簮瀵硅薄鎸囬拡鏉ュ畬鎴愬ぇ閮ㄥ垎宸ヤ綔鏃訛紝涓嶅Θ璇曡瘯鎴戣璁$殑榪欎釜闃夊壊鐗堢殑scoped_ptr/scoped_array銆傛諱箣錛屾牴鎹嚜宸辯殑瀹為檯鎯呭喌鏉ラ夋嫨鍚堥傜殑鏂規錛屽鏋滄爣鍑嗘柟妗堜笉閫傜敤錛屽氨鑷繁鍐欎竴涓?strong>鎵樼絳旀



HAOSOLA 2014-11-16 09:05 鍙戣〃璇勮
]]>灝嗘棤澹扮殑瑙嗛鍓緫鍔犲叆搴旂敤紼嬪簭http://www.shnenglu.com/haosola/archive/2014/11/16/208890.htmlHAOSOLAHAOSOLASun, 16 Nov 2014 00:55:00 GMThttp://www.shnenglu.com/haosola/archive/2014/11/16/208890.htmlhttp://www.shnenglu.com/haosola/comments/208890.htmlhttp://www.shnenglu.com/haosola/archive/2014/11/16/208890.html#Feedback0http://www.shnenglu.com/haosola/comments/commentRss/208890.htmlhttp://www.shnenglu.com/haosola/services/trackbacks/208890.html浣跨敤澶氬獟浣?/strong>
C++Builder鍙湪搴旂敤紼嬪簭涓姞鍏ュ濯掍綋緇勪歡銆傚彲浠ヤ嬌鐢ㄧ粍浠墮潰鏉縒in32欏典腑鐨凾Animate緇勪歡鎴朣ystem欏典腑鐨凾MediaPlayer緇勪歡銆傞渶瑕佸湪搴旂敤紼嬪簭涓姞鍏ユ棤澹扮殑瑙嗛鍓緫鏃訛紝浣跨敤鍔ㄧ敾緇勪歡銆傞渶瑕佹妸澹伴煶鍜?鎴栬棰戝壀杈戝姞鍏ュ簲鐢ㄧ▼搴忔椂錛屼嬌鐢ㄥ獟浣撴挱鏀懼櫒緇勪歡銆?br />鏈妭璁ㄨ涓嬪垪鍐呭錛?br />· 灝嗘棤澹扮殑瑙嗛鍓緫鍔犲叆搴旂敤紼嬪簭銆?br />· 灝嗗0闊沖拰/鎴栬棰戝壀杈戝姞鍏ュ簲鐢ㄧ▼搴忋?br />
灝嗘棤澹扮殑瑙嗛鍓緫鍔犲叆搴旂敤紼嬪簭
浣跨敤C++Builder鐨勫姩鐢繪帶浠跺彲鎶婃棤澹扮殑瑙嗛鍓緫鍔犲叆搴旂敤紼嬪簭銆?br />
瑕佹妸鏃犲0鐨勮棰戝壀杈戝姞鍏ュ簲鐢ㄧ▼搴忥細
1) 鍦ㄧ粍浠墮潰鏉跨殑Win32欏典腑鍙屽嚮鍔ㄧ敾鎺т歡鐨勫浘鏍囥傝繖灝嗚嚜鍔ㄦ妸鍔ㄧ敾鎺т歡鏀懼湪紿椾綋涓婃鍦ㄥ叾涓樉紺鴻棰戝壀杈戠殑紿楀彛涓?br />2) 浣跨敤瀵硅薄瑙傚療鍣?閫夋嫨Name灞炴у茍緇欏姩鐢繪帶浠惰緭鍏ヤ竴涓柊鍚嶅瓧銆傝皟鐢ㄥ姩鐢繪帶浠舵椂灝嗕嬌鐢ㄨ繖涓悕瀛楋紙閬靛驚鏍囧噯鐨凜++鏍囪瘑絎﹀懡鍚嶈鍒欙級銆傚綋璁劇疆璁捐鏃跺睘鎬у強鍒涘緩浜嬩歡澶勭悊紼嬪簭鏃訛紝鎬繪槸鐩存帴鍦ㄥ璞¤瀵熷櫒涓伐浣溿?br />3) 閫夋嫨涓嬪垪鎿嶄綔涔嬩竴錛?br />· 閫夋嫨CommonAVI灞炴у茍閫夋嫨涓嬫媺鍒楄〃涓彲鐢ㄧ殑AVI銆?br />· 鎴栭夋嫨FileName灞炴у茍鐐瑰嚮鐪佺暐錛?..錛夋寜閽紝浠庢湰鍦版垨緗戠粶鐩綍涓夋嫨涓涓彲鐢ㄧ殑AVI鏂囦歡錛屽茍鍦∣penAVI瀵硅瘽妗嗕腑鐐瑰嚮Open銆?br />· 鎴栦嬌鐢≧esName鎴朢esID灞炴ч夋嫨涓涓狝VI璧勬簮銆備嬌鐢≧esHandle鎸囧畾鍖呭惈鐢盧esName鎴朢esID灞炴ф爣璇嗙殑璧勬簮鐨勬ā鍧椼?br />榪欏皢鎶夾VI鏂囦歡杞藉叆鍐呭瓨銆傚皢Open灞炴ц涓簍rue浼氭妸AVI鍓緫鐨勭涓甯ф樉紺哄湪灞忓箷涓婏紝鐩村埌浣跨敤Active灞炴ф垨Play鏂規硶鎾斁AVI鍓緫銆?br />
4) 璁劇疆Repetitions灞炴у彲璁劇疆AVI鍓緫鎾斁鐨勯噸澶嶆鏁般傝嫢鍏跺間負0錛孉VI鍓緫浼氫竴鐩撮噸澶嶇洿鍒癝top鏂規硶琚皟鐢ㄣ?br />5) 淇敼鍔ㄧ敾鎺т歡鐨勫叾浠栬緗備緥濡?鑻ヨ鏀瑰彉鍔ㄧ敾鎺т歡鎵撳紑鏃舵樉紺虹殑絎竴甯э紝鍙皢StartFrame灞炴ц涓洪渶瑕佺殑甯с?br />) 浣跨敤涓嬫媺鍒楄〃灝咥ctive灞炴ц涓簍rue鎴栫紪鍐欎簨浠跺鐞嗙▼搴忎互鍦ㄨ繍琛屾椂鐗瑰畾鐨勪簨浠跺彂鐢熸椂鎾斁AVI鍓緫銆備緥濡?瑕佸湪涓涓寜閽璞¤鐐瑰嚮鏃訛紝搴斾負鎸夐挳鐨凮nClick浜嬩歡緙栧啓浜嬩歡澶勭悊紼嬪簭銆備篃鍙互璋冪敤Play鏂規硶鎸囧畾鎾斁AVI鍓緫鎵樼絳旀

娉ㄦ剰鑻ュ湪Active灞炴ц涓簍rue浠ュ悗鍦ㄤ慨鏀圭獥浣撴垨紿椾綋涓殑緇勪歡,Active灞炴у皢鍙樹負false錛屽繀欏婚噸鏂板皢瀹冭涓簍rue銆傚簲浠呭湪榪愯浠ュ墠鎴栧湪榪愯鏃跺仛榪欎簺宸ヤ綔銆傚姞鍏ユ棤澹拌棰戝壀杈戠殑紺轟緥錛屽亣瀹氭兂瑕佸湪搴旂敤紼嬪簭鍚姩鏃跺皢鍔ㄧ敾寰芥爣浣滀負鍒濆鐨勫睆騫曟樉紺恒傚湪鍔ㄧ敾寰芥爣鎾斁瀹屽悗榪欏箙灞忓箷娑堝け銆傝榪愯榪欎釜渚嬪瓙,鍏堝垱閫犱竴涓柊宸ョ▼騫跺皢Unit1.cpp鏂囦歡淇濆瓨涓篎rmlogo.cpp錛屼互鍙婂皢Project1.bpr鏂囦歡淇濆瓨涓篖ogo.bpr銆傜劧鍚庯細

1) 鍦ㄧ粍浠墮潰鏉跨殑Win32欏典腑鍙屽嚮鍔ㄧ敾緇勪歡鍥炬爣銆?br />2) 浣跨敤瀵硅薄瑙傚療鍣?灝嗗叾Name灞炴ц涓篖ogo1銆?br />3) 閫夋嫨鍏禙ileName灞炴?鐐瑰嚮鐪佺暐錛?..錛夋寜閽?浠庝綘鐨?.\Examples\Coolstuf鐩綍涓夋嫨cool.avi鏂囦歡銆?br />
鐒跺悗鍦∣penAVI瀵硅瘽妗嗕腑鐐瑰嚮Open銆傝繖灝嗘妸cool.avi鏂囦歡杞藉叆鍐呭瓨銆?br />4) 閫氳繃鐐瑰嚮鍜屾嫋鍔ㄦ妸鍔ㄧ敾鎺у埗妗嗘斁緗湪紿椾綋鐨勫彸涓婅銆?br />5) 灝嗗叾Repetitions灞炴ц涓? SAT絳旀
) 鐐瑰嚮紿椾綋浣垮叾鑾峰緱鐒︾偣騫跺皢鍏禢ame灞炴ц涓篖ogoForm1錛孋aption灞炴ц涓篖ogoWindow銆傜劧鍚庡噺灝忕獥浣撶殑楂樺害浠ヤ究灝嗗姩鐢繪帶浠舵斁鍒扮獥浣撴涓?br />7) 鍙屽嚮紿椾綋鐨凮nActivate浜嬩歡騫剁紪鍐欎笅鍒椾唬鐮佷互褰撶獥浣撳湪榪愯鏃惰幏寰楃劍鐐規椂鎾斁AVI鍓緫錛?br />
Logo1→Active = true;

8) 鍦ㄧ粍浠墮潰鏉縎tandard欏典笂鍙屽嚮鏍囩鎺т歡鍥炬爣銆傞夋嫨瀹冪殑Caption灞炴у茍杈撳叆“WelcometoCool Images4.0”銆傜劧鍚庨夋嫨Font灞炴?鐐瑰嚮鐪佺暐錛?..錛夋寜閽茍浠庡瓧浣撳璇濇涓夋嫨瀛椾綋鏍峰紡錛欱old,Size錛?8,Color錛歂avy錛屽茍鍗曞嚮OK銆傜偣鍑誨茍鎷栧姩鏍囩鎺т歡浠ュ皢瀹冩斁鍒扮獥浣撴涓?strong>鎵樼絳旀

9) 鐐瑰嚮鍔ㄧ敾鎺т歡浣垮叾鑾峰緱鐒︾偣銆傚弻鍑誨叾OnStop浜嬩歡騫剁紪鍐欎笅鍒椾唬鐮佷互褰揂VI鏂囦歡鍋滄鏃跺叧闂獥浣擄細
LogoForm1→Close();

10) 閫夋嫨RunRun鎵ц鍔ㄧ敾寰芥爣紿楀彛銆?/p>

HAOSOLA 2014-11-16 08:55 鍙戣〃璇勮
]]>
C/C++涓鍣╲ector浣跨敤鏂規硶http://www.shnenglu.com/haosola/archive/2014/09/20/208361.htmlHAOSOLAHAOSOLASat, 20 Sep 2014 07:13:00 GMThttp://www.shnenglu.com/haosola/archive/2014/09/20/208361.htmlhttp://www.shnenglu.com/haosola/comments/208361.htmlhttp://www.shnenglu.com/haosola/archive/2014/09/20/208361.html#Feedback0http://www.shnenglu.com/haosola/comments/commentRss/208361.htmlhttp://www.shnenglu.com/haosola/services/trackbacks/208361.html 銆銆[cpp] view plaincopy/*
 銆銆* file_name: vector_test.cpp
 銆銆*
 銆銆* Created on: 2014騫?鏈?8鏃?涓嬪崍3:34:23
 銆銆* Author: The_Third_Wave,
 銆銆* Last modified: 2014騫?鏈?8鏃?涓嬪崍3:34:23
 銆銆#include
 銆銆#include
 銆銆#include "Headers/Myfunc.h"
 銆銆#include "Headers/Person.h"
 銆銆void output(const std::vector &vec)
 銆銆// 鍥犱負鏄緭鍑鴻屼笉鏄慨鏀癸紝瀹氫箟褰㈠弬涓哄父閲忓紩鐢紝鎻愰珮鍙潬鎬?const)鍜屾晥鐜?&)!
 銆銆{
 銆銆std::cout << "size: " << vec.size()<< ", capacity: " <
 銆銆}
 銆銆int main()
 銆銆{
 銆銆std::vector vec = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
 銆銆pr_vector(vec);
 銆銆// 璁塊棶棣栦綅鍏冪礌錛屽師鐢熸柟娉曚箣vec.front()鍜寁ec.back() 浣跨敤鍓嶄竴鑸渶濂藉仛鍏冪礌媯鏌ec.size()
 銆銆std::cout << vec.front() << std::ends << vec.back() << std::endl;
 銆銆// 閫氳繃榪唬鍣ㄣ愭敞鎰?*(--vec.end())銆戯紝 浣跨敤鍓嶄竴鑸渶濂藉仛鍏冪礌媯鏌ec.size()
 銆銆std::cout << *vec.begin() << std::ends << *(--vec.end()) << std::endl;
 銆銆auto a = vec.size(); // 璁╃紪璇戝櫒鑷姩鍒嗘瀽琛ㄨ揪寮忔墍灞炵被鍨?br /> 銆銆auto b = vec.capacity(); // 涓嶉噸鏂板垎閰嶅唴瀛樼殑璇濓紝vector鍙互淇濆瓨澶氬皯鍏冪礌
 銆銆std::cout << "size: " << a << std::ends << "capacity: " <
 銆銆vec.reserve(50); // 鍒嗛厤鑷沖皯鑳藉綰硁涓厓绱犵殑鍐呭瓨絀洪棿
 銆銆output(vec);
 銆銆vec.shrink_to_fit(); // 灝哻apacity()鍑忓皯涓簊ize()鐩稿悓澶у皬
 銆銆output(vec);
 銆銆vec.reserve(50); // 鍒嗛厤鑷沖皯鑳藉綰?0涓厓绱犵殑鍐呭瓨絀洪棿
 銆銆// 浠ヤ笅娣誨姞鍏冪礌
 銆銆for (decltype(vec.size()) ix = 0; ix != 40; ++ix) // decltype浠庤〃杈懼紡綾誨瀷鎺ㄥ鍑哄彉閲忕被鍨?br /> 銆銆{
 銆銆vec.push_back(ix*ix);
 銆銆}
 銆銆pr_vector(vec);
 銆銆output(vec); // s杈撳嚭璇佹槑娌¤秴榪噑ize錛寁ector灝變笉浼氬垎閰嶈秴棰濈殑絀洪棿
 銆銆// 鎴戜滑涓嶅垎閰嶇┖闂達紝鐪嬬湅鑷姩綆$悊
 銆銆for (decltype(vec.size()) ix = 0; ix != 40; ++ix) // decltype浠庤〃杈懼紡綾誨瀷鎺ㄥ鍑哄彉閲忕被鍨?br /> 銆銆{
 銆銆vec.push_back(ix*ix);
 銆銆}
 銆銆pr_vector(vec);
 銆銆output(vec); // 杈撳嚭琛ㄧず鍒嗛厤浜嗚秴棰濈殑絀洪棿,銆愭祴璇曡〃鏄庯細鍒嗛厤鐨勭┖闂翠負褰撳墠鐨?鍊嶏紝涔熷氨鎰忓懗鐫瓚婂ぇ瓚婃氮璐廣?br /> 銆銆// 浠ヤ笅閲嶆柊鍒濆鍖栵紝寮濮嬫彃鍏ユ搷浣滅殑瀛︿範銆愬茍瀛︿範鍙婂嚑縐嶈祴鍊肩殑鎿嶄綔鏂規硶銆?br /> 銆銆std::vector vec2 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; // 閲嶆柊鍒濆鍖?br /> 銆銆pr_vector(vec); pr_vector(vec2);
 銆銆std::swap(vec, vec2); // 銆愬揩閫熴戜氦鎹袱瀹瑰櫒鐨勬暟鎹?swap(a, b)
 銆銆pr_vector(vec); pr_vector(vec2);
 銆銆vec2.assign(vec.begin(), vec.end()); // 鍙傛暟涓哄彟澶栦竴涓悓綾誨瀷vector鐨勮凱浠e櫒
 銆銆pr_vector(vec); pr_vector(vec2);
 銆銆vec.assign({0, 0, 0, 0, 0}); // 鍙傛暟涓哄垵濮嬪寲鍒楄〃
 銆銆pr_vector(vec);
 銆銆vec.assign(10, 1); // 鏇挎崲涓?0涓?
 銆銆pr_vector(vec);
 銆銆// vector娌℃湁鍚戝ご閮ㄦ彃鍏ユ暟鎹殑鍘熺敓鏂規硶錛屽彧鑳介氳繃insert()鏂規硶鏉ユ搷浣滐紝鎻掑叆浣嶇疆閮戒負鎸囬拡鎸囧悜鐨勫墠涓涓綅緗?br /> 銆銆// 鍏蜂綋鏈?縐?br /> 銆銆// 絎竴縐峷ec.insert(p, t); p涓鴻嚜韜殑榪唬鍣紝t涓洪渶瑕佹彃鍏ョ殑鍊鹼紝榪斿洖鍊間負鎸囧悜鏂版坊鍔犲厓绱犵殑榪唬鍣?br /> 銆銆auto p = vec.insert(vec.begin() + vec.size()/2, 6688);
 銆銆// 絎簩縐峷ec.insert(p, n, t); p涓鴻嚜韜殑榪唬鍣紝鎻掑叆n涓猼錛岃繑鍥炲間負鎸囧悜鏂版坊鍔犵殑絎竴涓厓绱犵殑榪唬鍣紝濡傛灉n涓?錛屽垯榪斿洖p
 銆銆vec.insert(p, 3, 4);
 銆銆// 絎笁縐峷ec.insert(p, b, e); p涓鴻嚜韜殑榪唬鍣紝b銆乪涓哄悓綾誨瀷鍏朵粬vec瀵硅薄鐨勮凱浠e櫒錛岃繑鍥炲間負鎸囧悜鏂版坊鍔犵殑絎竴涓厓绱犵殑榪唬鍣ㄣ傝寖鍥翠負絀猴紝鍒欒繑鍥瀙
 銆銆vec.insert(p, vec2.crbegin(), vec2.crend()); // const 鍙嶅悜榪唬鍣?strong>SAT絳旀
 銆銆// 絎洓縐峷ec.insert(p, il); p涓鴻嚜韜殑榪唬鍣紝il涓哄厓绱犲煎垪琛紝榪斿洖鍊間負鎸囧悜鏂版坊鍔犵殑絎竴涓厓绱犵殑榪唬鍣紝鍒楄〃涓虹┖錛屽垯榪斿洖p
 銆銆vec.insert(vec.begin(), {9,8,7,6,5,4,3,2,1,0});
 銆銆pr_vector(vec);
 銆銆// 鍠勭敤浣跨敤insert榪斿洖鍊鹼紝鍙互瀹炵幇鐗瑰畾浣嶇疆鐨勫弽澶嶆彃鍏?浠ヤ笂緇撴灉宸茶鏄?strong>鎵樼絳旀
 銆銆// emplace鎿嶄綔錛?銆恈++11銆慹mplace_front銆恦ector娌℃湁銆戙乪mplace銆乪mplace_back瀵瑰簲push_front銆恦ector娌℃湁銆戙乮nsert銆乸ush_back
 銆銆std::vector per = {{"The_Third_Wave", 100, }}; // 綾誨垵濮嬪寲+vector鍒濆鍖栵紝鎵浠{}錛?{}}蹇呴』鐨?br /> 銆銆per.emplace_back("The_Third_Wave", 188, );
 銆銆per.emplace(per.begin() + 1, Person("The_Third_Wave", 168, ));
 銆銆for (auto &p: per)
 銆銆{
 銆銆print(std::cout, p);
 銆銆}
 銆銆// 鍒犻櫎鎿嶄綔錛屾敞鎰忕紪璇戝櫒涓嶆鏌ュ厓绱犳槸鍚﹀瓨鍦紝鎵浠ュ潙鑷繁濉?br /> 銆銆// vec.pop_back(),vector娌℃湁pop_front()
 銆銆vec = {0, 1, 2, 3, 4, 5, 6, 7, 8 ,9};
 銆銆vec.pop_back();
 銆銆pr_vector(vec);
 銆銆// vec.erase(p)銆愬垹闄よ凱浠e櫒p鎵鎸囧厓绱狅紝榪斿洖鍊間負錛氳鍒犲厓绱犱箣鍚庣殑榪唬鍣ㄣ俻鎸囧悜灝鵑儴錛岃繑鍥炲熬鍚庤凱浠e櫒錛屽鏋減鏄熬鍚庤凱浠e櫒錛岄偅灝卞潙姝諱綘浜嗭紝鎭枩!銆?br /> 銆銆vec.erase(vec.begin() + 8);
 銆銆pr_vector(vec);
 銆銆// vec.erase(b, e)銆愬垹闄よ凱浠e櫒b錛宔鎵鎸囪寖鍥村厓绱狅紝榪斿洖鍊間負錛氳鍒犲厓绱犱箣鍚庣殑榪唬鍣ㄣ傚鏋渆鏄熬鍚庤凱浠e櫒錛岃繑鍥炵殑榪樻槸灝懼悗榪唬鍣紝涓嶅潙錛屾伃鍠?銆?br /> 銆銆vec.erase(vec.begin() + 3 , vec.end() - 1);
 銆銆pr_vector(vec);
 銆銆// vec.clear()鍒犻櫎鎵鏈夛紝榪斿洖鍊間負void
 銆銆vec.clear();
 銆銆pr_vector(vec);
 銆銆std::cout << "涓婇潰鏈夌┖琛屽氨瀵逛簡!鍚﹀垯灝辨槸鍑洪敊浜嗐?;
 銆銆}
 銆銆緇撴灉涓猴細
 
 銆銆[cpp] view plaincopy
 銆銆0 1 2 3 4 5 6 7 8 9
 銆銆0 9
 銆銆0 9
 銆銆size: 10 capacity: 10
 銆銆size: 10, capacity: 50
 銆銆size: 10, capacity: 10
 銆銆0 1 2 3 4 5 6 7 8 9 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521
 銆銆size: 50, capacity: 50
 銆銆0 1 2 3 4 5 6 7 8 9 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521
 銆銆size: 90, capacity: 100
 銆銆0 1 2 3 4 5 6 7 8 9 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521
 銆銆0 1 2 3 4 5 6 7 8 9
 銆銆0 1 2 3 4 5 6 7 8 9
 銆銆0 1 2 3 4 5 6 7 8 9 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521
 銆銆0 1 2 3 4 5 6 7 8 9
 銆銆0 1 2 3 4 5 6 7 8 9
 銆銆0 0 0 0 0
 銆銆1 1 1 1 1 1 1 1 1 1
 銆銆9 8 7 6 5 4 3 2 1 0 1 1 1 1 1 9 8 7 6 5 4 3 2 1 0 4 4 4 6688 1 1 1 1 1
 銆銆0 1 2 3 4 5 6 7 8
 銆銆0 1 2 3 4 5 6 7
 銆銆0 1 2 7
 銆銆涓婇潰鏈夌┖琛屽氨瀵逛簡!鍚﹀垯灝辨槸鍑洪敊浜嗐?img src ="http://www.shnenglu.com/haosola/aggbug/208361.html" width = "1" height = "1" />

HAOSOLA 2014-09-20 15:13 鍙戣〃璇勮
]]>
C++榪唬鍣ㄧ殑涓ょ瀹炵幇鏂瑰紡http://www.shnenglu.com/haosola/archive/2014/08/25/208128.htmlHAOSOLAHAOSOLAMon, 25 Aug 2014 13:36:00 GMThttp://www.shnenglu.com/haosola/archive/2014/08/25/208128.htmlhttp://www.shnenglu.com/haosola/comments/208128.htmlhttp://www.shnenglu.com/haosola/archive/2014/08/25/208128.html#Feedback0http://www.shnenglu.com/haosola/comments/commentRss/208128.htmlhttp://www.shnenglu.com/haosola/services/trackbacks/208128.html銆銆涓銆佽凱浠e櫒姒傝堪
銆銆榪欎釜鏍囬鍏跺疄鏈夌偣"鏍囬鍏?鐨勫惈涔夛紝鍥犱負C++鍦ㄦ爣鍑嗗簱涓殑瀹炵幇榪唬鍣ㄧ殑鏂瑰紡鍙湁涓縐嶏紝涔熷氨鏄負綾誨畾涔塨egin錛堬級鍜宔nd錛堬級鍑芥暟錛孋++11澧炲姞浜唕ange for璇彞錛屽彲浠ョ敤鏉ラ亶鍘嗚凱浠e櫒涓殑鍏冪礌銆傚疄鐜拌凱浠e櫒鐨勭浜岀鏂瑰紡錛屽氨鏄敤C++妯℃嫙C#鍜孞ava涓殑榪唬鍣ㄦā寮忥紝騫朵笖鎴戜滑鍙互瀹氫箟鍑鴻嚜宸辯殑foreach璇彞銆傞櫎姝や箣澶栵紝榪唬鍣ㄥ彲鑳借繕鏈夊緢澶氱瀹炵幇鐨勬柟娉曪紝鍚勪釜搴撲篃浼氬鑷繁鐨勮凱浠e櫒鐨勫疄鐜版湁鎵瀹氫箟錛屽湪榪欓噷鍙鏄庣櫧榪唬鍣ㄧ殑鏈川鎰忎箟鍗沖彲銆?br />銆銆榪唬鍣紝涔熺О浣滄父鏍囷紝鏄竴縐嶈璁℃ā寮忥紝鎴戜滑鍙互瀵瑰畠榪涜閫掑錛堟垨閫夋嫨涓嬩竴涓級鏉ヨ闂鍣ㄤ腑鐨勫厓绱狅紝鑰屾棤闇鐭ラ亾瀹冨唴閮ㄦ槸濡備綍瀹炵幇鐨勩?br />銆銆寰堝璇█鎻愪緵foreach璇彞鏉ヨ闂鍣ㄤ腑鐨勬瘡涓涓厓绱狅紝鍏跺疄涔熷氨鏄皟鐢ㄥ鍣ㄤ腑鐨勮凱浠e櫒錛屾娊璞″湴鏉ヨ灝辨槸錛?br />銆銆foreach 錛?鍏冪礌 : 瀹瑰櫒 錛?{ … }
銆銆涓婇潰鐨勪唬鐮佺瓑鏁堜簬錛?br />銆銆for 錛?娓告爣=鑾峰緱榪唬鍣ㄧ殑寮澶達紝鑾峰緱榪唬鍣ㄧ殑鏈熬錛?娓告爣 != 榪唬鍣ㄦ湯灝撅紱 娓告爣縐誨姩涓涓崟浣?錛?{…} // C++ 鐨勮凱浠e櫒妯″紡
銆銆鎴栬咃細
銆銆while 錛?榪唬鍣ㄦ父鏍囩Щ鍔ㄤ竴涓崟浣嶏紙榪斿洖鏄惁瀛樺湪涓嬩竴涓崟浣嶏級錛?{ … } // C#銆丣ava鐨勮凱浠e櫒妯″紡錛屽彲浠ョ敤榪唬鍣ㄣ侰urrent涔嬬被鐨勬柟娉曡繑鍥炴父鏍囨墍鎸囧悜鐨勫厓绱?br />銆銆浜屻丆++涓殑榪唬鍣ㄥ疄鐜版柟寮?br />銆銆榪唬鍣ㄥ叾瀹炴槸涓涓被錛岃鑷畾涔変竴涓凱浠e櫒錛屽氨瑕侀噸杞借凱浠e櫒鐨勶紒=銆佽В寮曠敤錛?錛夈?+榪愮畻絎︼紝浠ヤ究瀹冨湪range for璇彞涓嬌鐢ㄣ俽ange for 鏄疌++11涓柊澧炵殑璇彞錛屽鎴戜滑瀵逛竴涓泦鍚堜嬌鐢ㄨ鍙or 錛坅uto i : collection 錛?鏃訛紝瀹冪殑鍚箟鍏跺疄涓猴細
銆銆for 錛?auto __begin = collection.begin錛堬級錛?auto __end = collection.end錛堬級錛?__begin != __end錛堬級錛?++__begin 錛?br />銆銆{ i = *__begin;
銆銆… //寰幆浣?br />銆銆}
銆銆begin鍜宔nd鏄泦鍚堢殑鎴愬憳鍑芥暟錛屽畠榪斿洖涓涓凱浠e櫒銆傚鏋滆涓涓被鍙互鏈塺ange for鐨勬搷浣滐紝瀹冨繀欏伙細 · 鎷ユ湁begin鍜宔nd鍑芥暟錛屽畠浠潎榪斿洖榪唬鍣?· end鍑芥暟榪斿洖涓涓寚鍚戦泦鍚堟湯灝撅紝浣嗘槸涓嶅寘鍚湯灝懼厓绱犵殑鍊鹼紝鍗崇敤闆嗗悎鑼冨洿鏉ヨ〃紺猴紝涓涓凱浠e櫒鐨勮寖鍥存槸 [ begin, end 錛?涓涓乏闂彸寮鍖洪棿 瀵逛簬榪唬鍣紝瀹冪殑瑕佹眰鑷沖皯鏄細 · 蹇呴』閲嶈澆++銆侊紒=鍜岃В寮曠敤錛?錛夎繍綆楃錛涜凱浠e櫒鐪嬭搗鏉ヤ細鍍忎竴涓寚閽?· 榪唬鍣ㄥ繀欏誨彲浠ラ氳繃++鏈鍚庢弧瓚籌紒=鏉′歡錛岃繖鏍鋒墠鑳藉緇堟寰幆
銆銆涓嬮潰緇欏嚭鏈綆鍗曠殑瀹炵幇浠g爜銆傛垜浠畾涔変竴涓狢PPCollection綾伙紝閲岄潰鏈変釜瀛楃涓叉暟緇勶紝鎴戜滑璁╁畠鑳藉閫氳繃range for灝嗘瘡涓瓧絎︿覆杈撳嚭鏉ャ?br />銆銆#include <IOSTREAM>
銆銆class CPPCollection {
銆銆public:
銆銆class Iterator{
銆銆public:
銆銆int index;
銆銆CPPCollection& outer;
銆銆Iterator錛圕PPCollection &o, int i錛?: outer錛坥錛夛紝 index錛坕錛?{ }
銆銆void operator++錛堬級{
銆銆index++;
銆銆}
銆銆std::string operator*錛堬級 const{
銆銆return outer.str[index];
銆銆}
銆銆bool operator !=錛圛terator i錛墈
銆銆return i.index != index - 1;
銆銆}
銆銆};
銆銆public:
銆銆std::string str[10] {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
銆銆Iterator begin錛堬級 {
銆銆return Iterator錛?this, 0錛夛紱
銆銆}
銆銆Iterator end錛堬級 {
銆銆return Iterator錛?this, 9錛夛紱
銆銆}
銆銆};
銆銆鎴戜滑瀹氫箟浜嗕釜鍐呴儴鐨勫祵濂楃被Iterator,騫朵負瀹冮噸杞戒簡++銆?銆侊紒=榪愮畻絎︺傜敱浜嶤++涓殑鍐呴儴宓屽綾諱笌澶栧洿鐨勭被娌℃湁鑱旂郴錛屼負浜嗚闂閮ㄧ被瀵硅薄鐨勫鹼紝鎴戜滑蹇呴』瑕佷紶鍏ヤ竴涓紩鐢紙鎴栨寚閽堬紝鏈緥涓紶鍏ュ紩鐢級銆侷terator鐨勮嚜澧炴柟娉曞叾瀹炲氨鏄鍔犲唴閮ㄧ殑涓涓儲寮曞箋傚垽鏂紒=鐨勬柟娉曟槸鍜屽彟澶栦竴涓凱浠e櫒鍋氭瘮杈冿紝榪欎釜榪唬鍣ㄤ竴鑸槸闆嗗悎鐨勬湯灝撅紝褰撴垜浠殑绱㈠紩鍊間笉絳変簬鏈熬鐨勭儲寮曞?1錛?[begin, end錛?錛夋椂錛岃涓鴻凱浠e櫒宸茬粡杈懼埌浜嗘湯灝俱?鍦–PPCollection綾諱腑錛屽畾涔変簡begin錛堬級銆乪nd錛堬級鍒嗗埆榪斿洖寮澶淬佺粨鏉熻凱浠e櫒錛岃皟鐢ㄥ涓嬩唬鐮侊細
銆銆CPPCollection cpc;
銆銆for 錛坅uto i : cpc錛墈
銆銆std::cout 銆?i 銆?std::endl;
銆銆}
銆銆鍗沖彲閬嶅巻闆嗗悎涓殑鎵鏈夊厓绱犱簡銆?br />銆銆鍦ㄦ硾鍨嬬畻娉曚腑錛屼負浜嗗闆嗗悎涓殑姣忎竴涓厓绱犺繘琛屾搷浣滐紝鎴戜滑閫氬父瑕佷紶鍏ラ泦鍚堢殑榪唬鍣ㄥご銆佽凱浠e櫒灝撅紝浠ュ強璋撹瘝錛屼緥濡俿td::find_if錛坴ec.begin錛堬級錛?vec.end錛堬級錛?…錛夛紝榪欑娉涘瀷綆楁硶鍏跺疄灝辨槸鍦ㄨ凱浠e櫒鐨勯浣嶅弽澶嶈凱浠o紝鐒跺悗榪愯鐩稿簲鐨勮涓恒?br />銆銆涓夈佹ā鎷烠#錛圝ava錛変腑鐨勮凱浠e櫒瀹炵幇鏂瑰紡
銆銆C#鍜孞ava鐨勮凱浠e櫒瀹炵幇鏂瑰紡杈冧負綾諱技錛屽湪榪欓噷浠#涓轟緥錛屾垜鐢–++鏉ユā鎷熷畠鐨勫疄鐜般侰#涓紝鍙凱浠g殑綾葷戶鎵縄Enumerable鎺ュ彛錛屽畠澹版槑浜嗕竴涓柟娉旼etEnumerator,榪斿洖涓涓凱浠e櫒銆傝凱浠e櫒緇ф壙IEnumerator鎺ュ彛錛屾帴鍙e畾涔変簡MoveNext錛堬級鏂規硶錛氬皢娓告爣縐誨姩涓涓崟浣嶏紝騫惰繑鍥炴槸鍚﹁繕鍙互縐誨姩錛汻eset錛堬級鏂規硶錛氭父鏍囧綊浣嶏紱 Current灞炴э細榪斿洖褰撳墠娓告爣鎵鎸囧悜鐨勫鹼紙鍦–#涓紝Current鏄竴涓睘鎬э紝涓轟簡妯℃嫙瀹冿紝鍦–++涓皢瀹冨畾涔変負涓涓嚱鏁幫級錛屽茍涓旂敤鍙寘鍚娊璞″嚱鏁扮殑綾繪潵妯℃嫙鎺ュ彛鎵樼絳旀
銆銆#define interface struct
銆銆template <TYPENAME T>
銆銆interface IEnumerator {
銆銆virtual T& Current錛堬級 = 0;
銆銆virtual bool MoveNext錛堬級 = 0;
銆銆virtual void Reset錛堬級 = 0;
銆銆virtual ~IEnumerator<T>錛堬級 { };
銆銆};
銆銆template <TYPENAME T>
銆銆interface IEnumerable {
銆銆virtual IEnumerator<T>& GetEnumerator錛堬級 = 0;
銆銆virtual ~IEnumerable 錛堬級 { };
銆銆};
銆銆涓轟簡鑷畾涔変竴涓猣oreach"鍏抽敭瀛?,鍙互鐢ㄥ畯瀹氫箟鏉ヨ繘琛岃凱浠e櫒鐨勭瓑鏁堟浛浠o細
銆銆#define foreach錛坕tem, collection錛?\
銆銆auto &__item_enumerator = collection.GetEnumerator錛堬級錛?\
銆銆__item_enumerator.Reset錛堬級錛?\
銆銆while 錛坕tem = __item_enumerator.Current錛堬級錛?__item_enumerator.MoveNext錛堬級錛?br />銆銆褰撴垜浠嬌鐢╢oreach鐨勬椂鍊欙紝瀹忓睍寮鑷姩灞曞紑涓鴻皟鐢ㄩ泦鍚堢被collection鐨凣etEnumerator錛堬級鍑芥暟鏉ヨ幏寰椾竴涓凱浠e櫒鐨勫紩鐢紝澶嶄綅涔嬶紝騫跺皢褰撳墠鍊艱祴浜坕tem,榪唬鍣ㄥ悜鍓嶇Щ鍔ㄣ傞渶瑕佹敞鎰忕殑鏄紝鎴戜滑鍦ㄤ唬鐮佷腑涓嶈兘閲嶅瀹氫箟__item_enumerator鍙橀噺錛屼笖綾誨瀷涓瀹氳涓篴uto&:auto鍙橀噺涓嶄細淇濈暀寮曠敤絎﹀彿錛屼笖濡傛灉涓嶆槸寮曠敤錛堟垨鎸囬拡錛夛紝浼氳Е鍙戞嫹璐濇瀯閫犲嚱鏁幫紝浠庤屽け鍘誨璞$殑澶氭佹с?濡傚悓鍒氭墠涓鏍鳳紝鎴戜滑瀹氫箟涓涓泦鍚堢被錛?br />銆銆class CSharpCollection : public IEnumerable<STD::STRING>{
銆銆public:
銆銆class Enumerator : public IEnumerator<STD::STRING> {
銆銆public:
銆銆CSharpCollection &outer; //澶栭儴綾?br />銆銆int index = 0; //涓嬫爣
銆銆Enumerator 錛圕SharpCollection &o錛?: outer錛坥錛墈
銆銆}
銆銆bool MoveNext錛堬級 override {
銆銆index++;
銆銆if 錛坕ndex <= 10錛?return true;
銆銆delete this;
銆銆return false;
銆銆}
銆銆void Reset錛堬級 override {
銆銆index = 0;
銆銆}
銆銆std::string &Current錛堬級 override {
銆銆return outer.str[index];
銆銆}
銆銆~Enumerator 錛堬級{
銆銆std::cout 銆?"Enumerator 琚瀽鏋? 銆?std::endl;
銆銆}
銆銆};
銆銆public:
銆銆std::string str[10] {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
銆銆IEnumerator<STD::STRING>& GetEnumerator錛堬級 override{
銆銆return *new Enumerator錛?this錛夛紱
銆銆}
銆銆};
銆銆闇瑕佹敞鎰忕殑鏄紝鍑℃槸浣撶幇澶氭佹х殑鍑芥暟錛岃繑鍥炲煎繀欏諱負寮曠敤鎴栬呮寚閽堬紝涓斾笉寰椾負鏍堜腑鐨勪復鏃跺彉閲忥紝鍥犳鎴戜滑璋冪敤瀹孏etEnumerator錛堬級鍚庯紝瑕佸皢鐢熸垚鐨勮凱浠e櫒鍒犻櫎錛屽垹闄ょ殑浠g爜鍐欏湪浜哅oveNext錛堬級鍐咃紝褰撴父鏍囦笉鍙Щ鍔ㄧ殑鏃跺欙紝榪唬鍣ㄨ鍒犻櫎鎵樼絳旀
銆銆浠ュ悗灝卞彲浠ョ敤鑷繁鐨刦oreach瀹忓畾涔夋潵閬嶅巻鍏冪礌浜嗭細
銆銆std::string a;
銆銆CSharpCollection csc;
銆銆IEnumerable<STD::STRING>& refcsc = csc;
銆銆foreach 錛坅 , refcsc 錛墈
銆銆std::cout 銆?a 銆?std::endl;
銆銆}
銆銆涓婇潰浠g爜鐨勭涓夎鎰忓湪璇存槑錛屽鏋滀竴涓被涓戶鎵夸簡IEnumerable綾伙紝瀹冧竴瀹氭槸鍙凱浠g殑錛屽彲浠ヨ皟鐢ㄥ畠鐨凴eset錛堬級銆丮oveNext錛堬級銆丆urrent錛堬級錛屼篃鍙互鐢ㄦ垜浠垰鍒氬啓鐨刦oreach鏉ヨ繘琛岄亶鍘嗐?/p>

HAOSOLA 2014-08-25 21:36 鍙戣〃璇勮
]]>
鏁版嵁鏍煎紡 int涓巆har鐨勫瓨鍌ㄦ柟寮?/title><link>http://www.shnenglu.com/haosola/archive/2014/08/25/208126.html</link><dc:creator>HAOSOLA</dc:creator><author>HAOSOLA</author><pubDate>Mon, 25 Aug 2014 13:15:00 GMT</pubDate><guid>http://www.shnenglu.com/haosola/archive/2014/08/25/208126.html</guid><wfw:comment>http://www.shnenglu.com/haosola/comments/208126.html</wfw:comment><comments>http://www.shnenglu.com/haosola/archive/2014/08/25/208126.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/haosola/comments/commentRss/208126.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/haosola/services/trackbacks/208126.html</trackback:ping><description><![CDATA[<p>鏈夋椂鍊欓敊璇殑浠g爜浼氳鎴戜滑鏇存繁鍒葷殑鐞嗚В涓闂ㄧ紪紼嬭璦錛屾墍浠ュ湪Learn c the hard way涓涔︿腑錛屼綔鑰呬笉鍋滅殑璁╂垜浠妸姝g‘鐨勪唬鐮佺牬鍧忔帀錛屽彂鎸ユ垜浠殑濂藉蹇冧笌鎯寵薄鍔涳紝鍘誨彂瑙塩璇█鐨勪竴浜涚壒鎬с?br />涓轟簡寮勬竻寮勬竻c涓璱nt涓巆har鍨嬪彉閲忓瓨鍌ㄧ殑寮傚悓鍜実cc瀵規棤'\0'瀛楃鏁扮粍鐨勭殑鍙嶅簲錛屼慨鏀逛簡Learn c the hard way涔︿腑鐨別x8<br />浠g爜濡備笅<br />#include <stdio.h><br />int main錛坕nt argc,char *argv[]錛?br />{<br />int areas[] = {10, 12, 13, 14, 20};<br />char name [] = "Zed";<br />char full_name[] = {<br />'Z', 'e', 'd',<br />' ', 'A', '.', ' ',<br />'S', 'h', 'a', 'w'<br />};<br />unsigned int interg[2];<br />interg[0] = '\0' * 0x01000000 + 'A'*0x00010000 + 'B' * 0x00000100 + 'C' * 0x00000001;<br />unsigned int inter = interg[0];<br />// WARNING: On some system you may have to change the<br />// %ld in this code to a %u since it will use unsignt ints<br />printf錛?The size of an int: %ld\n",sizeof錛坕nt錛夛級錛?br />printf錛?The siez of areas 錛坕nt[]錛夛細%ld\n",<br />sizeof錛坅reas錛夛級錛?br />printf錛?The number of ints in areas: %ld\n",<br />sizeof錛坅reas錛?sizeof錛坕nt錛夛級錛?br />printf錛?The first area is %d, the 2nd %d.\n",<br />areas[0],areas[10]錛夛紱<br />printf錛?The size of a char: %ld\n",sizeof錛坈har錛夛級錛?br />printf錛?The size of name 錛坈har[]錛夛細 %ld\n",<br />sizeof錛坣ame錛?sizeof錛坈har錛夛級錛?br />printf錛?The size of full_name 錛坈har[]錛夛細 %ld\n",<br />sizeof錛坒ull_name錛夛級錛?br />printf錛?The number of chars: %ld\n",<br />sizeof錛坒ull_name錛?/ sizeof錛坈har錛夛級錛?br />// !!!鍏朵腑full_name鏈緗畁ull緇撳熬<br />printf錛?name=\"%s\" and full_name=\"%s\"\n",<br />name, full_name錛夛紱<br />// test 璇佹槑浜唃cc鎶婃湭鍒濆鍖栫殑鍦版柟鍒濆涓?<br />printf錛?the char after the full_name錛坰huold be error錛夛細%c\n",full_name[12]錛夛紱<br />// 鐢?int 瀛樺偍瀛楃涓?br />printf錛?interg=%X\n", interg錛夛紱<br />printf錛?inter=\"%s\"\n", &inter錛夛紱<br />printf錛?interg=\"%s\"\n", interg錛夛紱<br />return 0;<br />}<br />閲嶇偣鍦ㄤ簬<br />char full_name[] = {<br />'Z', 'e', 'd',<br />' ', 'A', '.', ' ',<br />'S', 'h', 'a', 'w'<br />};<br />unsigned int interg[2];<br />interg[0] = '\0' * 0x01000000 + 'A'*0x00010000 + 'B' * 0x00000100 + 'C' * 0x00000001;<br />unsigned int inter = interg[0];<br />鍙互鐪嬪埌full_name瀛楃涓插垵濮嬪寲鐨勬椂鍊欐槸娌℃湁null緇撳熬鐨勶紝濡傛灉鐨剉c涓紪璇戝茍浠ュ瓧絎︿覆褰㈠紡杈撳嚭鐨勮瘽浼氳窡涓婁貢鐮?br />interg鐨勬暟緇勭涓涓厓绱犱腑鎴戝垎鍒湪鍥涗釜瀛楄妭涓斁鍏ヤ簡'\0'錛堝嵆0錛夈?A'銆?B'銆?C',絎簩涓厓绱犳湭鍒濆鍖栥?br />inter涓斁鐨勬槸鍚屾牱鐨勬暟瀛椼?br />杈撳嚭濡備笅錛?br />The size of an int: 4<br />The siez of areas 錛坕nt[]錛夛細20<br />The number of ints in areas: 5<br />The first area is 10, the 2nd -1493946707.<br />The size of a char: 1<br />The size of name 錛坈har[]錛夛細 4<br />The size of full_name 錛坈har[]錛夛細 11<br />The number of chars: 11<br />name="Zed" and full_name="Zed A. Shaw"<br />the char after the full_name錛坰huold be error錛夛細<br />interg=6EB11E70<br />inter="CBA"<br />interg="CBA"<br />鍙互鐪嬪埌浠ュ瓧絎︿覆杈撳嚭鐨刦ull_name騫舵病鏈夊洜涓烘棤null緇撳熬鑰岃緭鍑轟貢鐮佹垨閿欒錛屽湪csdn璁哄潧涓婁簡瑙e埌鍙兘鏄洜涓篻cc灝嗗瓧絎︿覆瀛樺偍鍖哄叏閮ㄥ垵濮嬪寲涓洪浂銆?br />PS:瀵逛簬鏁扮粍鐨勫垵濮嬪寲錛屽彲浠ュ彧鍒濆鍖栦竴涓厓绱狅紝灝卞彲浠ヤ嬌鍏朵粬鍏冪礌涓洪浂錛圠earn c the hard way錛夛紱<br />inter浠ュ瓧絎︿覆杈撳嚭鐨勭粨鏋滄槸鎸夋垜璧嬪肩殑鍊掑簭杈撳嚭鐨勶紝榪欎釜鏄洜涓哄皬绔殑鏁版嵁瀛樺偍閫犳垚鐨?strong><em><a ><font color="#ffffe8">鎵樼絳旀</font></a></em></strong></p><img src ="http://www.shnenglu.com/haosola/aggbug/208126.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/haosola/" target="_blank">HAOSOLA</a> 2014-08-25 21:15 <a href="http://www.shnenglu.com/haosola/archive/2014/08/25/208126.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C璇█/C++閫掑綊綆楁硶http://www.shnenglu.com/haosola/archive/2014/05/30/207148.htmlHAOSOLAHAOSOLAFri, 30 May 2014 01:53:00 GMThttp://www.shnenglu.com/haosola/archive/2014/05/30/207148.htmlhttp://www.shnenglu.com/haosola/comments/207148.htmlhttp://www.shnenglu.com/haosola/archive/2014/05/30/207148.html#Feedback0http://www.shnenglu.com/haosola/comments/commentRss/207148.htmlhttp://www.shnenglu.com/haosola/services/trackbacks/207148.html銆銆閫掑綊綆楁硶涔熸槸C璇█綆楁硶涓竴涓瘮杈冪畝鍗曚笌甯哥敤鐨勭畻娉曪紝鏈枃鎴戜滑灝辨潵璋堣皥閫掑綊綆楁硶錛屾垜浠鍏堜簡瑙d竴涓嬩粈涔堟槸閫掑綊綆楁硶錛屽叧浜庨掑綊綆楁硶鐨勬蹇靛彧鏈変竴鍙ヨ瘽錛氫竴涓繃紼嬶紙鎴栧嚱鏁幫級鐩存帴鎴栭棿鎺ヨ皟鐢ㄨ嚜宸辨湰韜紝榪欑榪囩▼錛堟垨鍑芥暟錛夊彨閫掑綊榪囩▼錛堟垨鍑芥暟錛?br />銆銆鎴戜滑鍐嶆潵鐪嬬湅閫掑綊綆楁硶鐨勭壒鐐癸細
銆銆錛?錛?閫掑綊灝辨槸鍦ㄨ繃紼嬫垨鍑芥暟閲岃皟鐢ㄨ嚜韜?br />銆銆錛?錛?鍦ㄤ嬌鐢ㄩ掑綊絳栫暐鏃訛紝蹇呴』鏈変竴涓槑紜殑閫掑綊緇撴潫鏉′歡錛岀О涓洪掑綊鍑哄彛銆?br />銆銆錛?錛?閫掑綊綆楁硶瑙i閫氬父鏄懼緱寰堢畝媧侊紝浣嗛掑綊綆楁硶瑙i鐨勮繍琛屾晥鐜囪緝浣庛傛墍浠ヤ竴鑸笉鎻愬$敤閫掑綊綆楁硶璁捐紼嬪簭銆?br />銆銆錛?錛?鍦ㄩ掑綊璋冪敤鐨勮繃紼嬪綋涓郴緇熶負姣忎竴灞傜殑榪斿洖鐐廣佸眬閮ㄩ噺絳夊紑杈熶簡鏍堟潵瀛樺偍銆傞掑綊嬈℃暟榪囧瀹規槗閫犳垚鏍堟孩鍑虹瓑銆傛墍浠ヤ竴鑸笉鎻愬$敤閫掑綊綆楁硶璁捐紼嬪簭銆?br />銆銆鍐嶇湅鐪嬮掑綊鐨勫垎綾伙細
銆銆鐩存帴閫掑綊
銆銆紼嬪簭璁捐涓紝榪囩▼鎴栧嚱鏁扮洿鎺ユ垨鑰呴棿鎺ヨ皟鐢ㄨ嚜宸憋紝灝辮縐頒負閫掑綊璋冪敤銆傚瓙紼嬪簭鐩存帴璋冪敤鑷繁錛岃繖縐頒負鐩存帴閫掑綊錛涘祵濂楀叧緋葷殑瀛愮▼搴廇鍜孊,鍐呭眰鐨凚璋冪敤澶栧眰鐨凙,榪欐槸闂存帴浣庡綊錛涘鉤綰у叧緋葷殑瀛愮▼搴廇鍜孊,鍏朵腑A璋冪敤浜咮,B璋冪敤浜咥,榪欎篃鏄棿鎺ラ掑綊錛屼笉榪囷紝榪欑闂存帴閫掑綊鐢ㄥ埌浜?瓚呭墠寮曠敤"鐨勮鍒欍?br />銆銆涓嬮潰錛屽崥涓繪壘鍒頒簡涓浜涙湁鍏充簬閫掑綊綆楁硶鐨勯鐩傛垜浠湅鐪嬬涓涓鐩?br />銆銆榪欐槸涓閬撳緢緇忓吀鐨勯鐩細闃朵箻銆傜浉淇″ぇ閮ㄥ垎鐨勪漢閮界煡閬撲粈涔堟槸闃朵箻錛屼絾鏄綘濡傛灉涓嶇煡閬撶殑璇濓紝涓嶅Θ鍙傝涓涓嬬櫨搴︾櫨縐戯細闃朵箻銆?br />銆銆濂戒簡錛屽叾瀹炶繖棰橀潪甯哥畝鍗曪紝鎴戜滑鍙渶瑕佷竴涓嚱鏁板嵆鍙В鍐抽棶棰樸?br />銆銆1 int recursive錛坕nt i錛?br />銆銆2 {
銆銆3 int sum = 0;
銆銆4 if 錛? == i錛?br />銆銆5 return 錛?錛夛紱
銆銆6 else
銆銆7 sum = i * recursive錛坕-1錛夛紱
銆銆8 return sum;
銆銆9 }
銆銆灝辨槸涓婇潰鐨勯掑綊鍑芥暟錛岃繖棰樻垜灝變笉嫻垂綃囧箙璁茶В浜嗭紝閲嶇偣鏀懼湪絎簩涓緥棰橈細姹夎濉旈棶棰樸?br />銆銆涓涓簷閲屾湁涓変釜鏌卞瓙錛岀涓涓湁64涓洏瀛愶紝浠庝笂寰涓嬬洏瀛愯秺鏉ヨ秺澶с傝姹傚簷閲岀殑鑰佸拰灝氭妸榪?4涓洏瀛愬叏閮ㄧЩ鍔ㄥ埌絎笁涓煴瀛愪笂銆傜Щ鍔ㄧ殑鏃跺欏緇堝彧鑳藉皬鐩樺瓙鍘嬬潃澶х洏瀛愩傝屼笖姣忔鍙兘縐誨姩涓涓?銆佹鏃惰佸拰灝氾紙鍚庨潰鎴戜滑鍙粬絎竴涓拰灝氾級瑙夊緱寰堥毦錛屾墍浠ヤ粬鎯籌細瑕佹槸鏈変竴涓漢鑳芥妸鍓?3涓洏瀛愬厛縐誨姩鍒扮浜屼釜鏌卞瓙涓婏紝鎴戝啀鎶婃渶鍚庝竴涓洏瀛愮洿鎺ョЩ鍔ㄥ埌絎笁涓煴瀛愶紝鍐嶈閭d釜浜烘妸鍒氭墠鐨勫墠63涓洏瀛愪粠絎簩涓煴瀛愪笂縐誨姩鍒扮涓変釜鏌卞瓙涓婏紝鎴戠殑浠誨姟灝卞畬鎴愪簡錛岀畝鍗曘傛墍浠ヤ粬鎵句簡姣斾粬騫磋交鐨勫拰灝氾紙鍚庨潰鎴戜滑鍙粬絎簩涓拰灝氾級錛屽懡浠わ細
銆銆① 浣犳妸鍓?3涓洏瀛愮Щ鍔ㄥ埌絎簩鏌卞瓙涓?strong>鎵樼絳旀
銆銆② 鐒跺悗鎴戣嚜宸辨妸絎?4涓洏瀛愮Щ鍔ㄥ埌絎笁涓煴瀛愪笂鍚?br />銆銆③ 浣犳妸鍓?3涓洏瀛愮Щ鍔ㄥ埌絎笁鏌卞瓙涓?br />銆銆2銆佺浜屼釜鍜屽皻鎺ヤ簡浠誨姟錛屼篃瑙夊緱寰堥毦錛屾墍浠ヤ粬涔熷拰絎竴涓拰灝氫竴鏍鋒兂錛氳鏄湁涓涓漢鑳芥妸鍓?2涓洏瀛愬厛縐誨姩鍒扮涓変釜鏌卞瓙涓婏紝鎴戝啀鎶婃渶鍚庝竴涓洏瀛愮洿鎺ョЩ鍔ㄥ埌絎簩涓煴瀛愶紝鍐嶈閭d釜浜烘妸鍒氭墠鐨勫墠62涓洏瀛愪粠絎笁涓煴瀛愪笂縐誨姩鍒扮涓変釜鏌卞瓙涓婏紝鎴戠殑浠誨姟灝卞畬鎴愪簡錛岀畝鍗曘傛墍浠ヤ粬涔熸壘浜嗘瘮浠栧勾杞葷殑鍜屽皻錛堝悗闈㈡垜浠彨浠栫涓夊拰灝氾級錛屽懡浠わ細
銆銆① 浣犳妸鍓?2涓洏瀛愮Щ鍔ㄥ埌絎笁鏌卞瓙涓?br />銆銆② 鐒跺悗鎴戣嚜宸辨妸絎?3涓洏瀛愮Щ鍔ㄥ埌絎簩涓煴瀛愪笂鍚?br />銆銆③ 浣犳妸鍓?2涓洏瀛愮Щ鍔ㄥ埌絎簩鏌卞瓙涓?br />銆銆3銆佺涓変釜鍜屽皻鎺ヤ簡浠誨姟錛屽張鎶婄Щ鍔ㄥ墠61涓洏瀛愮殑浠誨姟渚濊懌鑺﹁瘽鐡㈢殑浜ょ粰浜嗙鍥涗釜鍜屽皻錛岀瓑絳夐掓帹涓嬪幓錛岀洿鍒版妸浠誨姟浜ょ粰浜嗙64涓拰灝氫負姝紙浼拌絎?4涓拰灝氬緢閮侀椃錛屾病鏈轟細涔熷懡浠や笅鍒漢錛屽洜涓哄埌浠栬繖閲岀洏瀛愬凡緇忓彧鏈変竴涓簡錛夈?br />銆銆4銆佸埌姝や換鍔′笅浜ゅ畬鎴愶紝鍒板悇鍙稿叾鑱屽畬鎴愮殑鏃跺欎簡銆傚畬鎴愬洖鎺ㄤ簡錛?br />銆銆絎?4涓拰灝氱Щ鍔ㄧ1涓洏瀛愶紝鎶婂畠縐誨紑錛岀劧鍚庣63涓拰灝氱Щ鍔ㄤ粬緇欒嚜宸卞垎閰嶇殑絎?涓洏瀛愩?br />銆銆絎?4涓拰灝氬啀鎶婄1涓洏瀛愮Щ鍔ㄥ埌絎?涓洏瀛愪笂銆傚埌榪欓噷絎?4涓拰灝氱殑浠誨姟瀹屾垚錛岀63涓拰灝氬畬鎴愪簡絎?2涓拰灝氫氦緇欎粬鐨勪換鍔$殑絎竴姝ャ?br />銆銆浠庝笂闈㈠彲浠ョ湅鍑猴紝鍙湁絎?4涓拰灝氱殑浠誨姟瀹屾垚浜嗭紝絎?3涓拰灝氱殑浠誨姟鎵嶈兘瀹屾垚錛屽彧鏈夌2涓拰灝?---絎?4涓拰灝氱殑浠誨姟瀹屾垚鍚庯紝絎?涓拰灝氱殑浠誨姟鎵嶈兘瀹屾垚銆傝繖鏄竴涓吀鍨嬬殑閫掑綊闂銆?鐜板湪鎴戜滑浠ユ湁3涓洏瀛愭潵鍒嗘瀽錛?br />銆銆絎?涓拰灝氬懡浠わ細
銆銆① 絎?涓拰灝氫綘鍏堟妸絎竴鏌卞瓙鍓?涓洏瀛愮Щ鍔ㄥ埌絎簩鏌卞瓙銆傦紙鍊熷姪絎笁涓煴瀛愶級
銆銆② 絎?涓拰灝氭垜鑷繁鎶婄涓鏌卞瓙鏈鍚庣殑鐩樺瓙縐誨姩鍒扮涓夋煴瀛愩?br />銆銆③ 絎?涓拰灝氫綘鎶婂墠2涓洏瀛愪粠絎簩鏌卞瓙縐誨姩鍒扮涓夋煴瀛愩?br />銆銆寰堟樉鐒訛紝絎簩姝ュ緢瀹規槗瀹炵幇鎵樼絳旀
銆銆鍏朵腑絎竴姝ワ紝絎?涓拰灝氫粬鏈?涓洏瀛愶紝浠栧氨鍛戒護錛?br />銆銆① 絎?涓拰灝氫綘鎶婄涓鏌卞瓙絎?涓洏瀛愮Щ鍔ㄥ埌絎笁鏌卞瓙銆傦紙鍊熷姪絎簩鏌卞瓙錛?br />銆銆② 絎?涓拰灝氭垜鑷繁鎶婄涓鏌卞瓙絎?涓洏瀛愮Щ鍔ㄥ埌絎簩鏌卞瓙涓娿?br />銆銆③ 絎?涓拰灝氫綘鎶婄1涓洏瀛愪粠絎笁鏌卞瓙縐誨姩鍒扮浜屾煴瀛愩?br />銆銆鍚屾牱錛岀浜屾寰堝鏄撳疄鐜幫紝浣嗙3涓拰灝氫粬鍙渶瑕佺Щ鍔?涓洏瀛愶紝鎵浠ヤ粬涔熶笉鐢ㄥ湪涓嬫淳浠誨姟浜嗐傦紙娉ㄦ剰錛氳繖灝辨槸鍋滄閫掑綊鐨勬潯浠訛紝涔熷彨杈圭晫鍊鹼級
銆銆絎笁姝ュ彲浠ュ垎瑙d負錛岀2涓拰灝氳繕鏄湁2涓洏瀛愶紝鍛戒護錛?br />銆銆① 絎?涓拰灝氫綘鎶婄浜屾煴瀛愪笂鐨勭1涓洏瀛愮Щ鍔ㄥ埌絎竴鏌卞瓙銆?br />銆銆② 絎?涓拰灝氭垜鎶婄2涓洏瀛愪粠絎簩鏌卞瓙縐誨姩鍒扮涓夋煴瀛愩?br />銆銆③ 絎?涓拰灝氫綘鎶婄涓鏌卞瓙涓婄殑鐩樺瓙縐誨姩鍒扮涓夋煴瀛愩?br />銆銆鍒嗘瀽緇勫悎璧鋒潵灝辨槸錛?→3 1→2 3→2 鍊熷姪絎笁涓煴瀛愮Щ鍔ㄥ埌絎簩涓煴瀛?|1→3 | 2→1 2→3 1→3鍊熷姪絎竴涓煴瀛愮Щ鍔ㄥ埌絎笁涓煴瀛恷鍏遍渶瑕佷竷姝ャ?br />銆銆濡傛灉鏄?涓洏瀛愶紝鍒欑涓涓拰灝氱殑鍛戒護涓1姝ュ拰絎?姝ュ悇鏈?涓洏瀛愶紝鎵浠ュ悇闇瑕?姝ワ紝鍏?4姝ワ紝鍐嶅姞涓婄1涓拰灝氱殑1姝ワ紝鎵浠?涓洏瀛愭誨叡闇瑕佺Щ鍔?+1+7=15姝ワ紝鍚屾牱錛?涓洏瀛愰渶瑕?5+1+15=31姝ワ紝6涓洏瀛愰渶瑕?1+1+31=64姝?#8230;…鐢辨鍙互鐭ラ亾錛岀Щ鍔╪涓洏瀛愰渶瑕侊紙2鐨刵嬈℃柟錛?1姝ャ?br />銆銆浠庝笂闈㈡暣浣撶患鍚堝垎鏋愬彲鐭ユ妸n涓洏瀛愪粠1搴э紙鐩稿綋絎竴鏌卞瓙錛夌Щ鍒?搴э紙鐩稿綋絎笁鏌卞瓙錛夛細
銆銆錛?錛夋妸1搴т笂錛坣-1錛変釜鐩樺瓙鍊熷姪3搴хЩ鍒?搴с?br />銆銆錛?錛夋妸1搴т笂絎琻涓洏瀛愮Щ鍔?搴с?br />銆銆錛?錛夋妸2搴т笂錛坣-1錛変釜鐩樺瓙鍊熷姪1搴хЩ鍔?搴с?br />銆銆涓嬮潰鐢╤anoi錛坣,a,b,c錛夎〃紺烘妸1搴涓洏瀛愬熷姪2搴хЩ鍔ㄥ埌3搴с?br />銆銆寰堟槑鏄撅細 錛?錛夋涓婃槸 hanoi錛坣-1,1,3,2錛?錛?錛夋涓婃槸 hanoi錛坣-1,2,1,3錛?br />
銆銆鐢–璇█琛ㄧず鍑烘潵錛屽氨鏄細
銆銆1 #include <stdio.h>
銆銆2 int method錛坕nt n,char a, char b錛?br />銆銆3 {
銆銆4 printf錛?number%dform%cto%c"n",n,a,b錛夛紱
銆銆5 return 0;
銆銆6 }
銆銆7 int hanoi錛坕nt n,char a,char b,char c錛?br />銆銆8 {
銆銆9 if錛?n==1 錛?move 錛?,a,c錛夛紱
銆銆10 else
銆銆11 {
銆銆12 hanoi錛坣-1,a,c,b錛夛紱
銆銆13 move錛坣,a,c錛夛紱
銆銆14 hanoi錛坣-1,b,a,c錛夛紱
銆銆15 };
銆銆16 return 0;
銆銆17 }
銆銆18 int main錛堬級
銆銆19 {
銆銆20 int num;
銆銆21 scanf錛?%d",&num錛夛紱
銆銆22 hanoi錛坣um,'A','B','C'錛夛紱
銆銆23 return 0;
銆銆24 }
銆銆榪欏氨鏄掑綊綆楁硶錛屽叾瀹烇紝鍦–璇█涓紝閫掑綊綆楁硶姣旀灇涓炬硶榪樿瀹炵敤錛屼絾鏄繖涓ょ綆楁硶閮藉緢綆鍗曘?/p>

HAOSOLA 2014-05-30 09:53 鍙戣〃璇勮
]]>
C++浜岀淮鏁扮粍鍔ㄦ佸唴瀛樺垎閰?/title><link>http://www.shnenglu.com/haosola/archive/2014/05/28/207135.html</link><dc:creator>HAOSOLA</dc:creator><author>HAOSOLA</author><pubDate>Wed, 28 May 2014 12:29:00 GMT</pubDate><guid>http://www.shnenglu.com/haosola/archive/2014/05/28/207135.html</guid><wfw:comment>http://www.shnenglu.com/haosola/comments/207135.html</wfw:comment><comments>http://www.shnenglu.com/haosola/archive/2014/05/28/207135.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/haosola/comments/commentRss/207135.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/haosola/services/trackbacks/207135.html</trackback:ping><description><![CDATA[<p>銆銆瀵逛簬浜岀淮鏁扮粍鍜屼簩緇存寚閽堢殑鍐呭瓨鐨勫垎閰?br />銆銆榪欓噷棣栭夎涓涓嬩竴緇存寚閽堝拰涓緇存暟緇勭殑鍐呭瓨鍒嗛厤鎯呭喌銆?br />銆銆涓緇達細<br />銆銆鏁扮粍錛氬艦濡俰nt a[5];榪欓噷瀹氫箟浜嗕竴涓竴緇存暟緇刟,騫朵笖鏁扮粍鐨勫厓绱犱釜鏁版槸5,榪欓噷鐨刟鏄繖浜斾釜鍏冪礌鐨勬暣浣撹〃紺猴紝涔熷氨鏄氳繃a鎴戜滑鑳芥壘鍒拌繖浜斾釜鍏冪礌銆傛敞鎰忥細a鏄唬琛ㄦ暟緇勭涓涓厓绱犵殑棣栧湴鍧銆?amp;a鏄唬琛ㄦ暟緇勭殑鍦板潃錛岃櫧鐒跺畠浠殑鍊肩浉鍚屻?br />銆銆鎸囬拡錛?int *p = NULL;榪欓噷p鏄竴涓寚閽堬紝瀹冩寚鍚戠殑鏄綆?br />銆銆鏈哄唴涓鍧楀瓨鍌╥nt綾誨瀷鐨勫唴瀛樸侾 = a;灝辨槸璁﹑絳変簬鍒氭墠鐢寵鐨勬暟緇勭殑絎竴涓厓绱犵殑鍦板潃銆傛墍浠ラ氳繃p鎴戜滑涔熻兘鎵懼埌閭?涓厓绱犳墍浠[i]璺焌[i]鐨勪綔鐢ㄤ竴鏍楓?br />銆銆娉ㄦ剰錛?br />銆銆1:int *p = NULL; p鐨勫ぇ灝忓湪32浣嶆満鍣ㄦ槸4,鍗充嬌p=a;涔嬪悗p鐨剆izeof錛坧錛変粛鐒剁瓑浜?.<br />銆銆2:鍦ㄥ0鏄庝箣鍚庯紝鏁扮粍蹇呴』鍒嗛厤鍐呭瓨榪涜鍒濆鍖栥傝屾寚閽堜竴鑸槸鍔ㄦ佸垎閰嶅叾鎸囧悜鐨勫唴瀛樸?br />銆銆3:涓嶈娣鋒穯鎸囬拡鍜屾暟緇勶紝鎸囬拡灝辨槸鎸囬拡錛屾暟緇勫氨鏄暟緇勶紝鍙槸鏁扮粍鍦ㄤ竴瀹氭潯浠朵笅鍙互杞崲鎴愭寚閽堛備笉瑕佸皢鎸囬拡鍜屾暟緇勬販娣嗐傦紙渚嬪錛氭寚閽堟湁++,--鎿嶄綔錛屾暟緇勫垯涓嶅彲浠ワ級銆?br />銆銆涓緇存寚閽堢殑鍔ㄦ佸唴瀛樺垎閰嶏細<br />銆銆int *p = NULL;<br />銆銆p = new int[N];<br />銆銆鍗冧竾鍒繕浜哾elete<br />銆銆delete [] p;<br />銆銆p = NULL;<br />銆銆浜岀淮鏁扮粍鐨勫唴瀛樺垎閰?br />銆銆int a[2][3]; 榪欓噷鍒嗛厤浜嗕竴涓?X3=6涓猧nt澶у皬鐨勬暟緇勩備簩緇存暟緇勭殑絎簩涓淮搴?涓嶈兘鐪佺暐銆?br />銆銆浜岀淮鏁扮粍鐨勫唴瀛樺湪璁$畻鏈哄唴涔熸槸榪炵畫鐨勪竴鐗囧湴鍧錛屽彧涓嶈繃姣?涓厓绱犳瀯鎴愪竴涓竴緇存暟緇刟[i],榪欓噷鐨刟[i]浠h〃緇村害涓?鐨勬暟緇勭殑絎竴涓厓绱犵殑鍦板潃銆傛墍浠[i][j]鐨勮闂窡a[i]鐨勮闂篃灝辨竻妤氫簡銆傝繖閲岀殑a[i]鍏跺疄鏄竴涓竴緇存暟緇勭殑絎竴涓厓绱犵殑鍦板潃銆?br />銆銆瀵逛簬浜岀淮鏁扮粍鍋氬疄鍙傦紝鎴戜滑閫氬父鐢ㄤ竴緇存寚閽堝鐞嗭紝渚嬪錛?br />銆銆1 #include<br />銆銆2 void test錛坕nt *p錛?br />銆銆3 {<br />銆銆4 for 錛坕nt i = 0;i<3;++i錛?br />銆銆5 {<br />銆銆6 for錛坕nt j = 0;j<3;++j錛?br />銆銆7 {<br />銆銆8 std::cout銆?錛坧+3*i+j錛夛紱 //涓緇村鐞?br />銆銆9 }<br />銆銆10 }<br />銆銆11 }<br />銆銆12 int main錛坴oid錛?br />銆銆13 {<br />銆銆14 int a[3][3]={1,2,3,4,5,6,7,0,0};<br />銆銆15 test錛堬紙int*錛塧錛夛紱 //灝嗕簩緇存暟緇勫綋鍋氫竴緇村鐞?br />銆銆16 system錛?pause"錛夛紱<br />銆銆17 return 0;<br />銆銆18 }<br />銆銆榪欎簺鎯沖繀涔︿笂璁茬殑閮介潪甯告竻妤氥?br />銆銆浜岀淮鏁扮粍鐨凜++鍔ㄦ佸唴瀛樺垎閰嶃?br />銆銆浜岀淮鎸囬拡鐨勫姩鎬佹暟緇勫垎閰嶏細浜岀淮鎸囬拡綾諱技鎸囬拡鏁扮粍鐨勫垎閰?br />銆銆int **p;<br />銆銆1 #include<br />銆銆2 int main錛坴oid錛?br />銆銆3 {<br />銆銆4 int **p = NULL; //榪欓噷鐢寵涓涓?x4鐨勪簩緇存暟緇?br />銆銆5 p = new int *[3]; //鍒嗛厤涓緇存寚閽堬紝鍒嗛厤涓変釜int* 綾誨瀷鐨勪竴緇存寚閽堛?br />銆銆6 for 錛坕nt i = 0;i < 3; ++i錛?br />銆銆7 {<br />銆銆8 p[i] = new int[4];<br />銆銆9 }<br />銆銆10 for 錛坕nt i = 0; i < 3; ++i錛?br />銆銆11 {<br />銆銆12 for錛坕nt j = 0; j < 4 ; ++j錛?br />銆銆13 {<br />銆銆14 p[i][j] = i*j;<br />銆銆15 std::cout<<br />銆銆26 return 0;<br />銆銆27 }<br />銆銆鎸囬拡鏁扮粍鐨勫姩鎬佸唴瀛樺垎閰?br />銆銆鎸囬拡鏁扮粍鐨勫姩鎬佸唴瀛樺垎閰嶅彧闇瑕佸鎸囬拡鏁扮粍鐨勬暟緇勫厓绱犳寚閽堝垎鍒垎閰嶅唴瀛樺嵆鍙紝姣斾簩緇存寚閽堢殑鍒嗛厤灝戜簡涓涓幆鑺傘?br />銆銆1 #include<strong><em><a ><font color="#ffffdf" size="2">鎵樼絳旀</font></a></em></strong><br />銆銆2 int main錛坴oid錛?br />銆銆3 {<br />銆銆4 int *a[3]; //鐢寵鍚湁涓変釜int* 綾誨瀷鐨勬寚閽堟暟緇?br />銆銆5 //璺熶簩緇存寚閽堜笉鍚岀殑鏄紝榪欓噷鏁扮粍a涓嶇敤鎵嬪姩鐢寵鍐呭瓨<br />銆銆6 for 錛坕nt i = 0;i < 3;++i錛?//鐢寵涓涓?x4鐨勭┖闂?br />銆銆7 {<br />銆銆8 a[i] = new int[4];<br />銆銆9 }<br />銆銆10 for 錛坕nt i = 0; i<3 ;++i錛?br />銆銆11 {<br />銆銆12 for 錛坕nt j = 0; j<4; ++j錛?br />銆銆13 {<br />銆銆14 a[i][j] = i*j;<br />銆銆15 std::cout<<br />銆銆25 return 0;<br />銆銆26 }<br />銆銆鏁扮粍鎸囬拡鐨勫姩鎬佸唴瀛樺垎閰?br />銆銆鏁扮粍鎸囬拡灝辨槸鎸囧悜鏁扮粍鐨勬寚閽堬紝璇寸櫧浜嗗氨鏄寚鍚戜竴涓暟緇勬暣浣擄紝鍥犳鍒嗛厤鐨勬椂鍊欑洿鎺ョ敵璇蜂竴鐗囧唴瀛樺湴鍧鍗沖彲銆傝窡浜岀淮鏁扮粍鐨勯潤鎬佸垎閰嶇被浼箋?br />銆銆1 // Karllen<br />銆銆2 int main錛坴oid錛?br />銆銆3 {<br />銆銆4 int 錛?a錛塠4]; //榪欓噷鐨?鏄浜岀淮鐨勭淮搴︼紝a鐨勫閲忕殑鍩烘暟涓?涓猧nt<br />銆銆5 a = new int[3][4];<br />銆銆6 delete []a;<br />銆銆7 a = NULL;<br />銆銆8 return 0;<br />銆銆9 }</p><img src ="http://www.shnenglu.com/haosola/aggbug/207135.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/haosola/" target="_blank">HAOSOLA</a> 2014-05-28 20:29 <a href="http://www.shnenglu.com/haosola/archive/2014/05/28/207135.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C/C++娣峰悎緙栫▼--extern 鈥淐鈥?浣跨敤鏂規硶璇﹁Вhttp://www.shnenglu.com/haosola/archive/2014/04/26/206722.htmlHAOSOLAHAOSOLASat, 26 Apr 2014 05:45:00 GMThttp://www.shnenglu.com/haosola/archive/2014/04/26/206722.htmlhttp://www.shnenglu.com/haosola/comments/206722.htmlhttp://www.shnenglu.com/haosola/archive/2014/04/26/206722.html#Feedback0http://www.shnenglu.com/haosola/comments/commentRss/206722.htmlhttp://www.shnenglu.com/haosola/services/trackbacks/206722.html銆銆鍏跺疄鍦ㄧ綉涓婂叧浜庤繖涓棶棰樺凡緇忚璁哄緢澶氫簡錛屼絾鏄ぇ澶氶兘鏄噸澶嶇殑錛岀‘瀹炶瑙g殑寰堣緇嗭紝榪樻寚鍑轟簡鎬庝箞鐢ㄦ槸閿欒鐨勶紝鏈潵璁板繂灝變笉鎬庝箞鏍鳳紝鎵浠ュ浜庤蹇嗚繖浜涢敊璇殑鐢ㄦ硶鏇存槸璁ㄥ帉錛岃繕涓嶅璁板繂涓縐嶉氱敤鐨勮屼笖姣旇緝瑙勮寖銆佷唬鐮侀槄璇昏搗鏉ユ瘮杈冭垝閫傜殑鏂規硶錛屼笅闈㈡垜浠紑濮嬪惂錛侊紒錛?br />銆銆C銆丆++瀵嗕笉鍙垎錛屽鉤鏃朵嬌鐢ㄦ洿澶氱殑鏄疌,浣嗘湁鏃跺欏嵈灝戜笉浜咰++,鑰屼笖鏄疌銆丆++娣鋒惌錛堟販鍚堢紪紼嬶級鍦ㄤ竴璧風殑錛屾瘮濡傦紝RTP瑙嗛浼犺緭錛宭ive555澶氬獟浣撴挱鏀劇瓑閮芥槸C++涓嬬殑錛屼粬闇瑕佽皟鐢↗RTPLIB搴擄紝鍐嶆瘮濡傦紝鎴戦偅閭歡鍙戦侊紝鎴戜篃鐢–++鍐欑殑錛屽畾涔変簡涓涓狤mail瀵硅薄錛屽寘鍚簡鎴愬憳錛氭敹鍙戦偖浠跺湴鍧錛岀敤鎴峰悕錛屽瘑鐮佺瓑錛屼互鍙婃柟娉曪細閭歡澶淬丅ase64緙栫爜鍜岄偖浠跺彂閫佽繖浜涙搷浣滐紝寰堝ソ鐢紝鎵浠ワ紝寰堝鏃跺欙紝C++榪樻槸铔笉閿欑殑…浣嗭紝*.c涓?.cpp鏂囦歡娣鋒惌鍦ㄤ竴璧鳳紝涓嶆槸閭d箞鐨勭畝鍗曪紝.
銆銆涓銆乪xtern"C"鐨勪綔鐢紙鏈閲嶇偣錛?br />銆銆1. extern "C"鐨勭湡瀹炵洰鐨勬槸瀹炵幇綾籆鍜孋++鐨勬販鍚堢紪紼嬨俥xtern "C"鏄敱C++鎻愪緵鐨勪竴涓繛鎺ヤ氦鎹㈡寚瀹氱鍙鳳紝鐢ㄤ簬鍛婅瘔C++榪欐浠g爜鏄疌鍑芥暟銆俥xtern "C"鍚庨潰鐨勫嚱鏁頒笉浣跨敤鐨凜++鐨勫悕瀛椾慨楗幫紝鑰屾槸鐢–.榪欐槸鍥犱負C++緙栬瘧鍚庡簱涓嚱鏁板悕浼氬彉寰楀緢闀匡紝涓嶤鐢熸垚鐨勪笉涓鑷達紝閫犳垚C++涓嶈兘鐩存帴璋冪敤C鍑芥暟鎵樼絳旀
銆銆2.C++璇█鏀寔鍑芥暟閲嶈澆錛孋璇█涓嶆敮鎸佸嚱鏁伴噸杞姐傚嚱鏁拌C++緙栬瘧鍚庡湪搴撲腑鐨勫悕瀛椾笌C璇█鐨勪笉鍚屻傚亣璁炬煇涓嚱鏁扮殑鍘熷瀷涓猴細void foo錛坕nt x, int y錛夛紱璇ュ嚱鏁拌C緙栬瘧鍣ㄧ紪璇戝悗鍦ㄥ簱涓殑鍚嶅瓧涓篲foo,鑰孋++緙栬瘧鍣ㄥ垯浼氫駭鐢熷儚_foo_int_int涔嬬被鐨勫悕瀛椼侰++鎻愪緵浜咰榪炴帴浜ゆ崲鎸囧畾絎﹀彿extern"C"鏉ヨВ鍐沖悕瀛楀尮閰嶉棶棰樸?br />銆銆3.琚玡xtern "C"闄愬畾鐨勫嚱鏁版垨鍙橀噺鏄痚xtern綾誨瀷鐨勶紱extern鏄疌/C++璇█涓〃鏄庡嚱鏁板拰鍏ㄥ眬鍙橀噺浣滅敤鑼冨洿錛堝彲瑙佹э級鐨勫叧閿瓧錛岃鍏抽敭瀛楀憡璇夌紪璇戝櫒錛屽叾澹版槑鐨勫嚱鏁板拰鍙橀噺鍙互鍦ㄦ湰妯″潡鎴栧叾瀹冩ā鍧椾腑浣跨敤銆傝extern "C"淇グ鐨勫彉閲忓拰鍑芥暟鏄寜鐓璇█鏂瑰紡緙栬瘧鍜岃繛鎺ョ殑闆呮濈瓟妗?/font>
銆銆4.涓巈xtern瀵瑰簲鐨勫叧閿瓧鏄痵tatic,琚畠淇グ鐨勫叏灞鍙橀噺鍜屽嚱鏁板彧鑳藉湪鏈ā鍧椾腑浣跨敤銆傚洜姝わ紝涓涓嚱鏁版垨鍙橀噺鍙彲鑳借鏈ā鍧椾嬌鐢ㄦ椂錛屽叾涓嶅彲鑳借extern "C"淇グ銆?br />銆銆浜屻乪xtern"C"涓巁_cplusplus
銆銆#ifdef __cplusplus
銆銆extern "C" {
銆銆#endif
銆銆#ifdef __cplusplus
銆銆}
銆銆#endif
銆銆Cplusplus錛圕 plus plus錛夊嵆"C++",鐢ㄤ簬C++鏂囨。鐨勫ご鏂囦歡涓紝涓婇潰浠g爜鐨勬剰鎬濇槸錛氬鏋滄槸C++鏂囦歡錛?.cpp錛夊悗緙錛屽垯浣跨敤extern "C",鍦–++欏圭洰涓簲鐢ㄧ殑闈炲父騫挎硾銆傚嵆浣跨敤gcc緙栬瘧鍣ㄧ紪璇戯紝鍑芥暟鍚嶄負C綾誨瀷濡俖foo.涓漢璁や負錛屾悶鎳備簡榪欎袱涓叧閿瓧錛屽挨鍏舵槸鐞嗚Вextern "C"
銆銆extern "C" 鏄負浜咰涓嶤++娣峰悎緙栫▼鑰岃绔嬬殑鍏抽敭瀛楋紝鍋囧浣犲凡緇忕煡閬撲簡鍏充簬extern "C" 鐨勪竴浜涗嬌鐢ㄦ柟娉曪紝鎯沖緢蹇帉鎻′嬌鐢ㄧ瓥鐣ワ紝涓嬮潰浠庝袱涓搴﹁鏄庯細
銆銆1錛夊湪C++紼嬪簭涓皟鐢–紼嬪簭錛屾瘮濡傚湪CPP鏂囦歡涓嬌鐢–鏂囦歡鐨勬煇涓涓嚱鏁幫紝閭d箞鍙互鑲畾鐨勬槸鎵浣跨敤鐨勫嚱鏁拌偗瀹氭槸鎸夌収C璇█鐨勭紪璇戞柟寮忕紪璇戯紝閭d箞浠呬粎閫氬憡CPP鏂囦歡鎸夌収C璇█璋冪敤鍑芥暟鐨勬柟寮忚皟鐢ㄥ嵆鍙紝鑰屼笖涓嶇敤鍐嶉噸鏂扮紪璇慍鍑芥暟錛屽湪鍑芥暟鎵鍦ㄥご鏂囦歡涓坊鍔爀xtern "C"鍏抽敭瀛楋紝灝嗚繖涓ご鏂囦歡鍖呭惈鍒癈PP鏂囦歡鍗沖彲銆備篃灝辨槸濡備笅鎵紺猴細
銆銆#ifdef __cplusplus
銆銆extern "C" {
銆銆#endif
銆銆/*… 鍑芥暟澹版槑*/
銆銆#ifdef __cplusplus
銆銆}
銆銆#endif
銆銆紼嶅井涓句緥璇存槑涓涓嬶細
銆銆?
銆銆// cheader.h
銆銆#ifndef _C_HEADER_
銆銆#define _C_HEADER_
銆銆#ifdef __cplusplus
銆銆extern "C" {
銆銆#endif
銆銆#include <STDIO.H>
銆銆#include <STDLIB.H>
銆銆int add錛坕nt a,int b錛夛紱
銆銆#ifdef __cplusplus
銆銆}
銆銆#endif
銆銆#endif
銆銆// cfunc.c
銆銆//#include "header.h"
銆銆int add錛坕nt a,int b錛?br />銆銆{
銆銆return a+b;
銆銆}
銆銆//main.cpp
銆銆#include <IOSTREAM>
銆銆#include "header.h"
銆銆using namespace std;
銆銆int main錛堬級
銆銆{
銆銆int a,b=0;
銆銆b= add錛?,3錛夛紱
銆銆cout銆夿銆奅NDL; pre < } 0; return><BR>
銆銆鐢變簬銆俢鏂囦歡涓殑鍑芥暟灝辨槸鎸夌収C璇█緙栬瘧鏂瑰紡榪涜緙栬瘧鐨勶紝鎵浠ヤ笉鍖呮嫭澶存枃浠朵篃鏄彲浠ョ殑錛屼絾鏄湪澶存枃浠跺0鏄庣殑鏃跺欏繀欏昏繘琛岃鏄庯紝鍥犱負鍦–PP鏂囦歡涓寘鎷殑榪欎釜澶存枃浠朵細鎸夌収C璇█鐨勬柟寮忔煡鎵懼嚱鏁幫紝涓嶇劧灝變細鎸夌収C++鐨勬柟寮忔煡鎵懼嚱鏁癮dd<BR>
銆銆<P><STRONG>2錛夊湪C紼嬪簭涓嬌鐢–PP緙栬瘧鐨勫嚱鏁幫紝榪欐牱闇瑕侀噸鏂扮紪璇戝嚱鏁板簱錛屽湪鍑芥暟澹版槑鐨勫ご鏂囦歡涓篃鏄涓婂0鏄庯紝鐒跺悗鍐嶅嚱鏁版墍鍦ㄧ殑CPP鏂囦歡娣誨姞涓婅堪澶存枃浠訛紝鐩存帴緙栬瘧鍗沖彲錛岃繖涓椂鍊欒櫧璇村湪CPP鏂囦歡緙栬瘧錛屼絾鏄槸瀹夎C璇█鐨勬柟寮忕紪璇戯紝鍦–鏂囦歡涓悓鏍鋒坊鍔犱笂榪板ご鏂囦歡鍗沖彲銆?lt;/STRONG></P>
銆銆<P><STRONG>紼嶅井涓句緥璇存槑涓涓嬶細</STRONG></P>
銆銆<P><STRONG></STRONG></P>
銆銆<PRE class=brush:java;>// cheader.h澶存枃浠?br />銆銆#ifndef _C_HEADER_
銆銆#define _C_HEADER_
銆銆#ifdef __cplusplus
銆銆extern "C" {
銆銆#endif
銆銆#include <STDIO.H>
銆銆#include <STDLIB.H>
銆銆int sub錛坕nt a,int b錛夛紱
銆銆#ifdef __cplusplus
銆銆}
銆銆#endif
銆銆#endif
銆銆//cppsub.cpp
銆銆#include "header.h"
銆銆int sub錛坕nt a,int b錛?br />銆銆{
銆銆return a-b;
銆銆}
銆銆/*浣嗘槸濡傛灉灝嗗ご鏂囦歡鐨勯偅涓琛屾敞閲婃帀錛屼篃浼氬湪榪炴帴鏃跺嚭閿欙紝鍥犱負鍦ㄥご鏂囦歡涓凡緇忚鏄庝嬌鐢–璇█鐨勬柟寮忕紪璇戯紝浣嗘槸涓嶈鏄庤繖涓鐐癸紝浼氫嬌鐢–++緙栬瘧鏂瑰紡榪涜
銆銆濡傛灉涓嶆兂浣跨敤澶存枃浠訛紝閭d箞鍙互灝唅nt sub錛坕nt a,int b錛?鎹負 extern "C" int sub錛坕nt a,int b錛?,浣嗘槸extern "C"鍦ㄣ俢鏂囦歡鏃朵笉鍙互鍑虹幇*/
銆銆//cmain.c
銆銆#include "header.h"
銆銆int main錛堬級
銆銆{
銆銆int a=0,b=0;
銆銆b = sub錛?,3錛夛紱
銆銆printf錛?b is %d\r\n",a,b錛夛紱
銆銆return 0;
銆銆}
銆銆</PRE>
銆銆浣嗘槸鍦ㄤ嬌鐢ㄧ殑鏃跺欎篃鏄湁涓瀹氱殑瑙勮寖鐨勶細<BR>
銆銆//C++澶存枃浠?cppExample.h<BR>
銆銆#ifndef CPP_EXAMPLE_H<BR>
銆銆#define CPP_EXAMPLE_H<BR>
銆銆extern "C" int add錛?int x, int y 錛夛紱<BR>
銆銆#endif
銆銆<BR>
銆銆//C++瀹炵幇鏂囦歡 cppExample.cpp<BR>
銆銆#include "cppExample.h"<BR>
銆銆int add錛?int x, int y 錛?lt;BR>
銆銆{<BR>
銆銆return x + y;<BR>
銆銆}
銆銆<BR>
銆銆/* C瀹炵幇鏂囦歡 cFile.c<BR>
銆銆/* 榪欐牱浼氱紪璇戝嚭閿欙細#include "cExample.h" */<BR>
銆銆extern int add錛?int x, int y 錛夛紱<BR>
銆銆int main錛?int argc, char* argv[] 錛?lt;BR>
銆銆{<BR>
銆銆add錛?2, 3 錛夛紱 <BR>
銆銆return 0;<BR>
銆銆}
銆銆note: 濡傛灉 cppEample.h 鏀規垚錛?br />銆銆#ifndef CPP_EXAMPLE_H<BR>
銆銆#define CPP_EXAMPLE_H
銆銆#ifdef __cplusplus
銆銆extern "C" {
銆銆#endif
銆銆<BR>
銆銆int add錛?int x, int y 錛夛紱
銆銆#ifdef __cplusplus
銆銆}
銆銆#endif
銆銆<BR>
銆銆#endif
銆銆鍒欏湪 C 鏂囦歡涓?#include "cExample.h" 灝變笉浼氭姤閿欎簡銆?br />銆銆鎬諱箣錛?鏃犺鍐?c 榪樻槸 c++澶存枃浠訛紝鍙鏄兂浠ュ悗娣峰悎緙栫▼錛屽氨鏈濂藉姞涓?br />銆銆#ifdef __cplusplus
銆銆extern "C" {
銆銆#endif
銆銆/**** some declaration or so *****/
銆銆#ifdef __cplusplus
銆銆}
銆銆#endif /* end of __cplusplus */<BR>
銆銆閿欒鐨勫師鍥犲湪浜庡湪C璇█涓病鏈夊叧閿瓧 extern "C"<BR>
銆銆錛圥S:鏈夌殑浜轟細鍗曠嫭浣跨敤extern "C" 鏉ヤ慨楗版煇涓嚱鏁幫紝鎴戣寰椾笉鏄緢濂界湅錛岀壒鍒槸鍦ㄥご鏂囦歡涓笉鑳借繖涔堜嬌鐢紝鍥犱負鍦–鏂囦歡涓笉鑳藉嚭鐜拌繖鏍風殑鍏抽敭瀛楋紝鎵浠ユ渶濂戒嬌鐢ㄦ渶鍚庝粙緇嶇殑鏉′歡緙栬瘧 鍦ㄤ竴瀹氭潯浠朵笅鎵嶄嬌鐢?extern "C"錛?lt;BR>
銆銆<P></P>
銆銆<PRE class=brush:java;><PRE class=brush:java;></PRE>
銆銆<PRE class=brush:java;></PRE>
銆銆<PRE class=brush:java;></PRE>
銆銆<PRE class=brush:java;></PRE>
銆銆<PRE class=brush:java;></PRE>
銆銆<PRE class=brush:java;></PRE>
銆銆<PRE class=brush:java;></PRE>
銆銆<PRE class=brush:java;></PRE>
銆銆<PRE class=brush:java;></PRE>
銆銆<PRE class=brush:java;></PRE> </PRE>



HAOSOLA 2014-04-26 13:45 鍙戣〃璇勮
]]>
printf()鏍煎紡鍖栬緭鍑鴻瑙?/title><link>http://www.shnenglu.com/haosola/archive/2014/04/08/206503.html</link><dc:creator>HAOSOLA</dc:creator><author>HAOSOLA</author><pubDate>Tue, 08 Apr 2014 08:26:00 GMT</pubDate><guid>http://www.shnenglu.com/haosola/archive/2014/04/08/206503.html</guid><wfw:comment>http://www.shnenglu.com/haosola/comments/206503.html</wfw:comment><comments>http://www.shnenglu.com/haosola/archive/2014/04/08/206503.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/haosola/comments/commentRss/206503.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/haosola/services/trackbacks/206503.html</trackback:ping><description><![CDATA[<p>銆銆% - 0 m.n l鎴杊 鏍煎紡瀛楃<br />銆銆涓嬮潰瀵圭粍鎴愭牸寮忚鏄庣殑鍚勯」鍔犱互璇存槑錛?br />銆銆①%:琛ㄧず鏍煎紡璇存槑鐨勮搗濮嬬鍙鳳紝涓嶅彲緙哄皯銆?br />銆銆②-:鏈?琛ㄧず宸﹀榻愯緭鍑猴紝濡傜渷鐣ヨ〃紺哄彸瀵歸綈杈撳嚭銆?br />銆銆③0:鏈?琛ㄧず鎸囧畾絀轟綅濉?,濡傜渷鐣ヨ〃紺烘寚瀹氱┖浣嶄笉濉?br />銆銆④m.n:m鎸囧煙瀹斤紝鍗沖搴旂殑杈撳嚭欏瑰湪杈撳嚭璁懼涓婃墍鍗犵殑瀛楃鏁般侼鎸囩簿搴︺傜敤浜庤鏄庤緭鍑虹殑瀹炲瀷鏁扮殑灝忔暟浣嶆暟銆傚鏁板煎瀷鐨勬潵璇達紝鏈寚瀹歯鏃訛紝闅愬惈鐨勭簿搴︿負n=6浣嶃?br />銆銆⑤l鎴杊:l瀵規暣鍨嬫寚long鍨嬶紝瀵瑰疄鍨嬫寚double鍨嬨俬鐢ㄤ簬灝嗘暣鍨嬬殑鏍煎紡瀛楃淇涓簊hort鍨嬨?br />銆銆---------------------------------------<br />銆銆鏍煎紡瀛楃<br />銆銆鏍煎紡瀛楃鐢ㄤ互鎸囧畾杈撳嚭欏圭殑鏁版嵁綾誨瀷鍜岃緭鍑烘牸寮忋?br />銆銆①d鏍煎紡錛氱敤鏉ヨ緭鍑哄崄榪涘埗鏁存暟銆傛湁浠ヤ笅鍑犵鐢ㄦ硶錛?br />銆銆%d:鎸夋暣鍨嬫暟鎹殑瀹為檯闀垮害杈撳嚭銆?br />銆銆%md:m涓烘寚瀹氱殑杈撳嚭瀛楁鐨勫搴︺傚鏋滄暟鎹殑浣嶆暟灝忎簬m,鍒欏乏绔ˉ浠ョ┖鏍鹼紝鑻ュぇ浜巑,鍒欐寜瀹為檯浣嶆暟杈撳嚭銆?br />銆銆%ld:杈撳嚭闀挎暣鍨嬫暟鎹?br />銆銆②o鏍煎紡錛氫互鏃犵鍙峰叓榪涘埗褰㈠紡杈撳嚭鏁存暟銆傚闀挎暣鍨嬪彲浠ョ敤"%lo"鏍煎紡杈撳嚭銆傚悓鏍蜂篃鍙互鎸囧畾瀛楁瀹藉害鐢?%mo"鏍煎紡杈撳嚭銆?br />銆銆渚嬶細<br />銆銆main錛堬級<br />銆銆{ int a = -1;<br />銆銆printf錛?%d, %o", a, a錛夛紱<br />銆銆}<br />銆銆榪愯緇撴灉錛?1,177777<br />銆銆紼嬪簭瑙f瀽錛?1鍦ㄥ唴瀛樺崟鍏冧腑錛堜互琛ョ爜褰㈠紡瀛樻斁錛変負錛?111111111111111錛?,杞崲涓哄叓榪涘埗鏁頒負錛?77777錛?.<br />銆銆③x鏍煎紡錛氫互鏃犵鍙峰崄鍏繘鍒跺艦寮忚緭鍑烘暣鏁般傚闀挎暣鍨嬪彲浠ョ敤"%lx"鏍煎紡杈撳嚭銆傚悓鏍蜂篃鍙互鎸囧畾瀛楁瀹藉害鐢?%mx"鏍煎紡杈撳嚭銆?br />銆銆④u鏍煎紡錛氫互鏃犵鍙峰崄榪涘埗褰㈠紡杈撳嚭鏁存暟銆傚闀挎暣鍨嬪彲浠ョ敤"%lu"鏍煎紡杈撳嚭銆傚悓鏍蜂篃鍙互鎸囧畾瀛楁瀹藉害鐢?%mu"鏍煎紡杈撳嚭銆?br />銆銆⑤c鏍煎紡錛氳緭鍑轟竴涓瓧絎︺?br />銆銆⑥s鏍煎紡錛氱敤鏉ヨ緭鍑轟竴涓覆銆傛湁鍑犱腑鐢ㄦ硶<br />銆銆%s:渚嬪錛歱rintf錛?%s", "CHINA"錛夎緭鍑?CHINA"瀛楃涓詫紙涓嶅寘鎷弻寮曞彿錛夈?br />銆銆%ms:杈撳嚭鐨勫瓧絎︿覆鍗爉鍒楋紝濡傚瓧絎︿覆鏈韓闀垮害澶т簬m,鍒欑獊鐮磋幏m鐨勯檺鍒訛紝灝嗗瓧絎︿覆鍏ㄩ儴杈撳嚭銆傝嫢涓查暱灝忎簬m,鍒欏乏琛ョ┖鏍箋?br />銆銆%-ms:濡傛灉涓查暱灝忎簬m,鍒欏湪m鍒楄寖鍥村唴錛屽瓧絎︿覆鍚戝乏闈狅紝鍙寵ˉ絀烘牸銆?br />銆銆%m.ns:杈撳嚭鍗爉鍒楋紝浣嗗彧鍙栧瓧絎︿覆涓乏绔痭涓瓧絎︺傝繖n涓瓧絎﹁緭鍑哄湪m鍒楃殑鍙充晶錛屽乏琛ョ┖鏍鹼紝娉ㄦ剰錛氬鏋渘鏈寚瀹氾紝榛樿涓?.<br />銆銆%-m.ns:鍏朵腑m銆乶鍚箟鍚屼笂錛宯涓瓧絎﹁緭鍑哄湪m鍒楄寖鍥寸殑宸︿晶錛屽彸琛ョ┖鏍箋傚鏋渘>m,鍒欒嚜鍔ㄥ彇n鍊鹼紝鍗充繚璇乶涓瓧絎︽甯歌緭鍑猴紝娉ㄦ剰錛氬鏋渘鏈寚瀹氾紝榛樿涓?.<br />銆銆濡傛灉鏄痵printf錛坉esc, "%m.ns", sour錛夛紱 濡傛灉desc絀洪棿澶熺殑璇濓紝浼氬湪%m.ns 涓?鐨勭粨灝捐嚜鍔ㄨˉnull瀛楃錛屼笉鍚屼簬strncpy.<br />銆銆渚嬪 :sprintf錛坉esc, "%.3s", "123456"錛夛紱 desc濡傛灉絀洪棿>=4瀛楄妭鐨勮瘽錛岀4涓瓧鑺傚皢鏄痭ull瀛楃銆?br />銆銆⑦f鏍煎紡錛氱敤鏉ヨ緭鍑哄疄鏁幫紙鍖呮嫭鍗曘佸弻綺懼害錛夛紝浠ュ皬鏁板艦寮忚緭鍑恒傛湁浠ヤ笅鍑犵鐢ㄦ硶錛?br />銆銆%f:涓嶆寚瀹氬搴︼紝鏁存暟閮ㄥ垎鍏ㄩ儴杈撳嚭騫惰緭鍑?浣嶅皬鏁般?br />銆銆%m.nf:杈撳嚭鍏卞崰m鍒楋紝鍏朵腑鏈塶浣嶅皬鏁幫紝濡傛暟鍊煎搴﹀皬浜巑宸︾琛ョ┖鏍箋?br />銆銆%-m.nf:杈撳嚭鍏卞崰n鍒楋紝鍏朵腑鏈塶浣嶅皬鏁幫紝濡傛暟鍊煎搴﹀皬浜巑鍙崇琛ョ┖鏍箋?br />銆銆⑧e鏍煎紡錛氫互鎸囨暟褰㈠紡杈撳嚭瀹炴暟銆傚彲鐢ㄤ互涓嬪艦寮忥細<br />銆銆%e:鏁板瓧閮ㄥ垎錛堝張縐板熬鏁幫級杈撳嚭6浣嶅皬鏁幫紝鎸囨暟閮ㄥ垎鍗?浣嶆垨4浣嶃?br />銆銆%m.ne鍜?-m.ne:m銆乶鍜?-"瀛楃鍚箟涓庡墠鐩稿悓銆傛澶刵鎸囨暟鎹殑鏁板瓧閮ㄥ垎鐨勫皬鏁頒綅鏁幫紝m琛ㄧず鏁翠釜杈撳嚭鏁版嵁鎵鍗犵殑瀹藉害銆?br />銆銆⑨g鏍煎紡錛氳嚜鍔ㄩ塮鏍煎紡鎴杄鏍煎紡涓緝鐭殑涓縐嶈緭鍑猴紝涓斾笉杈撳嚭鏃犳剰涔夌殑闆躲?br />銆銆---------------------------------------<br />銆銆鍏充簬printf鍑芥暟鐨勮繘涓姝ヨ鏄庯細<br />銆銆濡傛灉鎯寵緭鍑哄瓧絎?%",鍒欏簲璇ュ湪"鏍煎紡鎺у埗"瀛楃涓蹭腑鐢ㄨ繛緇袱涓?琛ㄧず錛屽錛?br />銆銆printf錛?%f%%", 1.0/3錛夛紱<br />銆銆杈撳嚭0.333333%.<br />銆銆---------------------------------------<br />銆銆瀵逛簬鍗曠簿搴︽暟錛屼嬌鐢?f鏍煎紡絎﹁緭鍑烘椂錛屼粎鍓?浣嶆槸鏈夋晥鏁板瓧錛屽皬鏁?浣嶃?br />銆銆瀵逛簬鍙岀簿搴︽暟錛屼嬌鐢?lf鏍煎紡絎﹁緭鍑烘椂錛屽墠16浣嶆槸鏈夋晥鏁板瓧錛屽皬鏁?浣嶃?br />銆銆------------------------------------------------------------------<br />銆銆printf錛堬級鍑芥暟鏄牸寮忚緭鍑哄嚱鏁幫紝璇鋒眰printf錛堬級鎵撳嵃鍙橀噺鐨勬寚浠ゅ彇鍐充笌鍙橀噺鐨勭被鍨嬨備緥濡傦紝鍦ㄦ墦鍗版暣鏁版槸浣跨敤%d絎﹀彿錛屽湪鎵撳嵃瀛楃鏄?鐢?c 絎﹀彿銆傝繖浜涚鍙瘋縐頒負杞崲璇存槑銆傚洜涓哄畠浠寚瀹氫簡濡備綍涓嶆暟鎹漿鎹㈡垚鍙樉紺虹殑褰㈠紡銆備笅鍒楀垪鍑虹殑鏄疉NSI C鏍囧噯printf錛堬級鎻愪緵鐨勫悇縐嶈漿鎹㈣鏄庛?br />銆銆杞崲璇存槑鍙婁綔涓虹粨鏋滅殑鎵撳嵃杈撳嚭%a 嫻偣鏁般佸崄鍏繘鍒舵暟瀛楀拰p-璁版暟娉曪紙C99錛?br />銆銆%A 嫻偣鏁般佸崄鍏繘鍒舵暟瀛楀拰p-璁版硶錛圕99錛?br />銆銆%c 涓涓瓧絎?br />銆銆%d 鏈夌鍙峰崄榪涘埗鏁存暟<br />銆銆%e 嫻偣鏁般乪-璁版暟娉?br />銆銆%E 嫻偣鏁般丒-璁版暟娉?br />銆銆%f 嫻偣鏁般佸崄榪涘埗璁版暟娉?br />銆銆%g 鏍規嵁鏁板間笉鍚岃嚜鍔ㄩ夋嫨%f鎴?e.<br />銆銆%G 鏍規嵁鏁板間笉鍚岃嚜鍔ㄩ夋嫨%f鎴?e.<br />銆銆%i 鏈夌鍙峰崄榪涘埗鏁幫紙涓?d鐩稿悓錛?br />銆銆%o 鏃犵鍙峰叓榪涘埗鏁存暟<br />銆銆%p 鎸囬拡<br />銆銆%s 瀛楃涓?br />銆銆%u 鏃犵鍙峰崄榪涘埗鏁存暟<br />銆銆%x 浣跨敤鍗佸叚榪涘埗鏁板瓧0f鐨勬棤絎﹀彿鍗佸叚榪涘埗鏁存暟<br />銆銆%X 浣跨敤鍗佸叚榪涘埗鏁板瓧0f鐨勬棤絎﹀彿鍗佸叚榪涘埗鏁存暟<br />銆銆%% 鎵撳嵃涓涓櫨鍒嗗彿<br />銆銆//榪樻湁涓涓壒孌婄殑鏍煎紡%*.* ,榪欎袱涓槦鍙風殑鍊煎垎鍒敱絎簩涓拰絎笁涓弬鏁扮殑鍊兼寚瀹?printf錛?%.*s \n", 8, "abcdefgggggg"錛夛紱<br />銆銆printf錛?%*.*f \n", 3,3, 1.25456f錛夛紱浣跨敤printf 錛堬級鍑芥暟 printf錛堬級鐨勫熀鏈艦寮忥細 printf錛?鏍煎紡鎺у埗瀛楃涓?,鍙橀噺鍒楄〃錛夛紱#include<cstdio>int main錛堬級<br />銆銆{<br />銆銆//for int<br />銆銆int i=30122121;<br />銆銆long i2=309095024l;<br />銆銆short i3=30;<br />銆銆unsigned i4=2123453; printf錛?%d,%o,%x,%X,%ld,%hd,%u\n",i,i,i,i,i2,i3,i4錛夛紱//濡傛灉鏄細%l,%h,鍒欒緭涓嶅嚭緇撴灉<br />銆銆printf錛?%d,%ld\n",i,i2錛夛紱//璇曢獙涓嶅嚭%ld鍜?d涔嬮棿鐨勫樊鍒紝鍥犱負long鏄?bytes <strong><em><a ><font color="#ffffec">www.yztrans.com</font></a></em></strong> <br />銆銆printf錛?%hd,%hd\n\n\n",i,i3錛夛紱//璇曢獙浜?hd鍜?d涔嬮棿鐨勫樊鍒紝鍥犱負short鏄?bytes<br />銆銆//for string and char<br />銆銆char ch1='d';<br />銆銆unsigned char ch2=160;<br />銆銆char *str="Hello everyone!";<br />銆銆printf錛?%c,%u,%s\n\n\n",ch1,ch2,str錛夛紱//unsigned char瓚呰繃128鐨勬病鏈夊瓧絎﹀搴?br />銆銆//for float and double,unsigned and signed can not be used with double and float<br />銆銆float fl=2.566545445F;//or 2.566545445f<br />銆銆double dl=265.5651445; <strong><em><a ><font color="#ffffec">www.jamo123.com</font></a></em></strong> <br />銆銆long double dl2=2.5654441454;<br />銆銆//%g娌℃湁e鏍煎紡錛岄粯璁?浣嶅寘鎷皬鏁扮偣鍓嶉潰鐨勬暟錛?br />銆銆//%f娌℃湁e鏍煎紡錛岄粯璁?浣嶄粎鍙皬鏁扮偣鍚庨潰鍖呭惈6浣?br />銆銆//%e閲囩敤e鏍煎紡錛岄粯璁?浣嶄負杞寲鍚庣殑灝忔暟鐐瑰悗闈㈢殑6浣?br />銆銆printf錛?%f,%e,%g,%.7f\n",fl,dl,dl,dl錛夛紱<br />銆銆printf錛?%f,%E,%G,%f\n",fl,dl,dl,dl錛夛紱//%F is wrong<br />銆銆printf錛?%.8f,%.10e\n",fl,dl錛夛紱<br />銆銆printf錛?%.8e,%.10f\n\n\n",fl,dl錛夛紱<br />銆銆//for point<br />銆銆int *iP=&i;<br />銆銆char *iP1=new char;<br />銆銆void *iP2;//dangerous!<br />銆銆printf錛?%p,%p,%p\n\n\n",iP,iP1,iP2錛夛紱<br />銆銆//鍏朵粬鐭ヨ瘑錛氳礋鍙鳳紝琛ㄧず宸﹀榻愶紙榛樿鏄彸瀵歸綈錛夛紱%6.3,6琛ㄧず瀹藉害錛?琛ㄧず綺懼害<br />銆銆char *s="Hello world!";<br />銆銆printf錛?:%s: \n:%10s: \n:%.10s: \n:%-10s: \n:%.15s: \n:%-15s: \n:%15.10s: \n:%-15.10s:\n\n\n",<br />銆銆s,s,s,s,s,s,s,s錛夛紱 double ddd=563.908556444;<br />銆銆printf錛?:%g: \n:%10g: \n:%.10g: \n:%-10g: \n:%.15g: \n:%-15g: \n:%15.10g: \n:%-15.10g:\n\n\n",<br />銆銆ddd,ddd,ddd,ddd,ddd,ddd,ddd,ddd錛夛紱<br />銆銆//榪樻湁涓涓壒孌婄殑鏍煎紡%*.* ,榪欎袱涓槦鍙風殑鍊煎垎鍒敱絎簩涓拰絎笁涓弬鏁扮殑鍊兼寚瀹?printf錛?%.*s \n", 8, "abcdefgggggg"錛夛紱<br />銆銆printf錛?%*.*f \n", 3,3, 1.25456f錛夛紱 return 0;<br />銆銆}</p><img src ="http://www.shnenglu.com/haosola/aggbug/206503.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/haosola/" target="_blank">HAOSOLA</a> 2014-04-08 16:26 <a href="http://www.shnenglu.com/haosola/archive/2014/04/08/206503.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://783956.com" target="_blank">中日韩美女免费视频网址在线观看</a>| <a href="http://yp77741.com" target="_blank">久久成人人人人精品欧</a>| <a href="http://17oooo.com" target="_blank">欧美成人在线免费视频</a>| <a href="http://y3u7.com" target="_blank">欧美激情第9页</a>| <a href="http://stt788.com" target="_blank">亚洲视频在线观看免费</a>| <a href="http://91chaopron.com" target="_blank">久久久.com</a>| <a href="http://av0333.com" target="_blank">欧美精品福利</a>| <a href="http://3dmh133.com" target="_blank">国产欧美一区在线</a>| <a href="http://4399360.com" target="_blank">亚洲欧洲一区二区天堂久久 </a>| <a href="http://988tz.com" target="_blank">亚洲欧美中文在线视频</a>| <a href="http://cm168168.com" target="_blank">久久久久成人精品</a>| <a href="http://aqdav81.com" target="_blank">欧美午夜宅男影院在线观看</a>| <a href="http://969093.com" target="_blank">黄色精品免费</a>| <a href="http://heyzo1031.com" target="_blank">国产综合色精品一区二区三区</a>| <a href="http://329374.com" target="_blank">亚洲国产欧美在线人成</a>| <a href="http://mauhorng.com" target="_blank">国产一区二区三区无遮挡</a>| <a href="http://www50050.com" target="_blank">日韩视频在线一区二区三区</a>| <a href="http://4466o.com" target="_blank">香蕉久久一区二区不卡无毒影院</a>| <a href="http://www-888690.com" target="_blank">免费视频一区二区三区在线观看</a>| <a href="http://0999555.com" target="_blank">中文国产成人精品久久一</a>| <a href="http://balqueen.com" target="_blank">国产欧美日韩视频在线观看</a>| <a href="http://04781900.com" target="_blank">欧美大片91</a>| <a href="http://ddixx.com" target="_blank">国产精品久久久久77777</a>| <a href="http://xjhzgy.com" target="_blank">宅男66日本亚洲欧美视频</a>| <a href="http://876769.com" target="_blank">欧美成人一区二区三区在线观看</a>| <a href="http://2jjzz.com" target="_blank">欧美伦理91i</a>| <a href="http://my8823.com" target="_blank">亚洲全黄一级网站</a>| <a href="http://jiejiesao8.com" target="_blank">亚洲欧美国产制服动漫</a>| <a href="http://227002.com" target="_blank">国产精品国产一区二区 </a>| <a href="http://www227zh.com" target="_blank">亚洲风情在线资源站</a>| <a href="http://770456.com" target="_blank">久久国产黑丝</a>| <a href="http://246767.com" target="_blank">亚洲一区在线观看视频 </a>| <a href="http://www30bxbx.com" target="_blank">国产精品福利在线</a>| <a href="http://5657hh.com" target="_blank">欧美大片免费观看在线观看网站推荐</a>| <a href="http://72966t.com" target="_blank">欧美日韩在线播放三区四区</a>| <a href="http://710557.com" target="_blank">91久久在线视频</a>| <a href="http://sdsankeguo.com" target="_blank">亚洲欧美一区二区视频</a>| <a href="http://www66441.com" target="_blank">亚洲免费av电影</a>| <a href="http://337795.com" target="_blank">日韩视频免费大全中文字幕</a>| <a href="http://077229.com" target="_blank">欧美不卡高清</a>| <a href="http://48655aa.com" target="_blank">亚洲精品一区二区在线</a>| <a href="http://176sfsf.com" target="_blank">麻豆精品精品国产自在97香蕉</a>| <a href="http://xxx6688.com" target="_blank">久久国产欧美精品</a>| <a href="http://vipaiqiyi.com" target="_blank">亚洲综合日本</a>| <a href="http://mm-777.com" target="_blank">欧美一区二区视频97</a>| <a href="http://www-663345.com" target="_blank">狠狠色伊人亚洲综合成人</a>| <a href="http://569688.com" target="_blank">日韩午夜在线</a>| <a href="http://www-666638.com" target="_blank">亚洲精品久久久一区二区三区</a>| <a href="http://aqd072.com" target="_blank">欧美一区2区视频在线观看</a>| <a href="http://by4672.com" target="_blank">亚洲一区观看</a>| <a href="http://hazymall.com" target="_blank">欧美日韩午夜</a>| <a href="http://by8556.com" target="_blank">亚洲精品免费看</a>| <a href="http://arielteam.com" target="_blank">欧美偷拍一区二区</a>| <a href="http://zhijiasd.com" target="_blank">欧美亚洲一区在线</a>| <a href="http://sdsptl.com" target="_blank">欧美视频一区二区</a>| <a href="http://zyjzz.com" target="_blank">艳女tv在线观看国产一区</a>| <a href="http://www38044.com" target="_blank">国产精品久久久久久久久久免费看 </a>| <a href="http://arielteam.com" target="_blank">欧美成在线视频</a>| <a href="http://1069024.com" target="_blank">蜜桃av综合</a>| <a href="http://785448.com" target="_blank">在线播放日韩</a>| <a href="http://di4see.com" target="_blank">亚洲毛片在线看</a>| <a href="http://439368.com" target="_blank">国产欧美一区二区精品婷婷</a>| <a href="http://wwwp6660.com" target="_blank">一本大道久久a久久综合婷婷</a>| <a href="http://551692.com" target="_blank">亚洲免费av片</a>| <a href="http://aaa798.com" target="_blank">欧美网站在线观看</a>| <a href="http://dddd30.com" target="_blank">亚洲一二三区在线观看</a>| <a href="http://51shoudian.com" target="_blank">亚洲桃花岛网站</a>| <a href="http://zz-777.com" target="_blank">久久高清福利视频</a>| <a href="http://aidou28.com" target="_blank">久久影院午夜论</a>| <a href="http://8xv0.com" target="_blank">欧美日韩三级一区二区</a>| <a href="http://372469.com" target="_blank">欧美一区1区三区3区公司</a>| <a href="http://as777as.com" target="_blank">亚洲综合国产</a>| <a href="http://15149cc.com" target="_blank">国产精品亚洲片夜色在线</a>| <a href="http://www24699.com" target="_blank">久久综合久久久久88</a>| <a href="http://yujiaosanye.com" target="_blank">国产亚洲欧美一区在线观看</a>| <a href="http://99hhbb.com" target="_blank">欧美亚洲一区</a>| <a href="http://haochen072.com" target="_blank">麻豆av福利av久久av</a>| <a href="http://1116333.com" target="_blank">亚洲国产精品va在线看黑人动漫</a>| <a href="http://hg4958.com" target="_blank">久热爱精品视频线路一</a>| <a href="http://1116333.com" target="_blank">午夜激情综合网</a>| <a href="http://2938423.com" target="_blank">欧美国产日韩一二三区</a>| <a href="http://160160160.com" target="_blank">久久成人这里只有精品</a>| <a href="http://showrti.com" target="_blank">国产亚洲午夜</a>| <a href="http://8331651.com" target="_blank">你懂的视频一区二区</a>| <a href="http://showrti.com" target="_blank">久久久噜噜噜久久人人看</a>| <a href="http://caoliu2022.com" target="_blank">欧美激情一区二区三区四区</a>| <a href="http://gzpurefaith.com" target="_blank">99视频精品</a>| <a href="http://ydpszcn.com" target="_blank">久久九九有精品国产23</a>| <a href="http://dailymailnepal.com" target="_blank">国产精品jvid在线观看蜜臀</a>| <a href="http://13751144594.com" target="_blank">亚洲影院免费观看</a>| <a href="http://8x588.com" target="_blank">免费中文字幕日韩欧美</a>| <a href="http://0808333.com" target="_blank">国产婷婷精品</a>| <a href="http://8842aa.com" target="_blank">亚洲一区在线免费观看</a>| <a href="http://479n.com" target="_blank">你懂的视频一区二区</a>| <a href="http://www-90443.com" target="_blank">亚洲精品视频在线观看免费</a>| <a href="http://pansinobbs.com" target="_blank">国产精品色在线</a>| <a href="http://889644.com" target="_blank">老司机67194精品线观看</a>| <a href="http://miaoxp.com" target="_blank">日韩视频在线永久播放</a>| <a href="http://029902.com" target="_blank">久久久久国产精品www</a>| <a href="http://017455.com" target="_blank">亚洲美女中文字幕</a>| <a href="http://wwdd44.com" target="_blank">国产一区二区三区高清在线观看 </a>| <a href="http://5588gww.com" target="_blank">亚洲精品视频二区</a>| <a href="http://www-68689.com" target="_blank">久久国产黑丝</a>| <a href="http://5207877.com" target="_blank">亚洲视频在线观看三级</a>| <a href="http://www8qa.com" target="_blank">精品成人一区二区三区</a>| <a href="http://3333328.com" target="_blank">欧美中文在线视频</a>| <a href="http://www-878899.com" target="_blank">久久久久国色av免费观看性色</a>| <a href="http://www39pao.com" target="_blank">亚洲国产裸拍裸体视频在线观看乱了</a>| <a href="http://9273829.com" target="_blank">欧美伊人久久</a>| <a href="http://hbstjsgc.com" target="_blank">99精品福利视频</a>| <a href="http://378682.com" target="_blank">欧美黄色成人网</a>| <a href="http://aqdw2021.com" target="_blank">久久国产主播精品</a>| <a href="http://cc1024.com" target="_blank">国外成人免费视频</a>| <a href="http://6133c.com" target="_blank">欧美午夜在线</a>| <a href="http://fangxinedu.com" target="_blank">欧美激情乱人伦</a>| <a href="http://by1473.com" target="_blank">久久免费视频这里只有精品</a>| <a href="http://15013010203.com" target="_blank">欧美.www</a>| <a href="http://428820.com" target="_blank">久久精品国产久精国产爱</a>| <a href="http://jx963.com" target="_blank">中国亚洲黄色</a>| <a href="http://wwwen41.com" target="_blank">亚洲精品乱码久久久久久</a>| <a href="http://gaobb52.com" target="_blank">国内精品久久久久久 </a>| <a href="http://44779c.com" target="_blank">欧美成年人在线观看</a>| <a href="http://zjkgjt.com" target="_blank">欧美一乱一性一交一视频</a>| <a href="http://8868866.com" target="_blank">一区二区三区**美女毛片</a>| <a href="http://asanny.com" target="_blank">午夜精品亚洲一区二区三区嫩草</a>| <a href="http://ww323.com" target="_blank">亚洲区第一页</a>| <a href="http://543199.com" target="_blank">亚洲国产另类久久久精品极度</a>| <a href="http://hh474.com" target="_blank">国内精品久久久久影院 日本资源</a>| <a href="http://6168138.com" target="_blank">欧美视频免费看</a>| <a href="http://jzsp101.com" target="_blank">欧美日韩视频第一区</a>| <a href="http://4tobi.com" target="_blank">欧美国产在线电影</a>| <a href="http://jxrisen.com" target="_blank">欧美成人一区二区三区</a>| <a href="http://xb735.com" target="_blank">美日韩精品视频</a>| <a href="http://czsanlin.com" target="_blank">日韩视频不卡中文</a>| <a href="http://am3757.com" target="_blank">亚洲片在线资源</a>| <a href="http://www387333.com" target="_blank">亚洲黄色性网站</a>| <a href="http://wwwzmcc1.com" target="_blank">欧美一区亚洲</a>| <a href="http://www-3844444.com" target="_blank">亚洲国产视频直播</a>| <a href="http://iamsleekcn.com" target="_blank">亚洲成人在线观看视频</a>| <a href="http://099idc.com" target="_blank">欧美日韩免费视频</a>| <a href="http://www-188445.com" target="_blank">欧美日本韩国一区</a>| <a href="http://www201314.com" target="_blank">亚洲精品一区二区三区在线观看</a>| <a href="http://ktt2048.com" target="_blank">一本一本a久久</a>| <a href="http://yh5557.com" target="_blank">国产精品国产一区二区</a>| <a href="http://3333577.com" target="_blank">欧美日韩国产一级</a>| <a href="http://8484vivo.com" target="_blank">欧美一区二区三区视频免费</a>| <a href="http://iacapmm.com" target="_blank">亚洲午夜精品久久久久久app</a>| <a href="http://ahhccz.com" target="_blank">夜夜爽99久久国产综合精品女不卡</a>| <a href="http://xmt86.com" target="_blank">最新亚洲电影</a>| <a href="http://ddixx.com" target="_blank">亚洲深夜福利</a>| <a href="http://spyfaw.com" target="_blank">欧美一区二区国产</a>| <a href="http://y08877.com" target="_blank">久久精品亚洲精品</a>| <a href="http://9a9u.com" target="_blank">免费成人性网站</a>| <a href="http://smdzs.com" target="_blank">欧美乱人伦中文字幕在线</a>| <a href="http://spyfaw.com" target="_blank">欧美日韩综合</a>| <a href="http://1177898.com" target="_blank">国产欧美精品在线播放</a>| <a href="http://fc3332.com" target="_blank">韩国三级在线一区</a>| <a href="http://mide776.com" target="_blank">在线日韩欧美视频</a>| <a href="http://www-kj8777.com" target="_blank">99国产精品99久久久久久</a>| <a href="http://www37999.com" target="_blank">一本色道久久综合亚洲精品婷婷 </a>| <a href="http://maisuper.com" target="_blank">国产精品国产三级欧美二区</a>| <a href="http://bkksd.com" target="_blank">国产欧美一区二区精品婷婷</a>| <a href="http://www-188445.com" target="_blank">国产在线精品成人一区二区三区</a>| <a href="http://989766.com" target="_blank">一区二区视频免费完整版观看</a>| <a href="http://aabbcc11.com" target="_blank">亚洲福利国产</a>| <a href="http://www49773.com" target="_blank">亚洲免费在线视频</a>| <a href="http://www-136445.com" target="_blank">91久久国产精品91久久性色</a>| <a href="http://340332.com" target="_blank">亚洲美女视频在线观看</a>| <a href="http://hznaja.com" target="_blank">亚洲在线视频免费观看</a>| <a href="http://339254.com" target="_blank">久久精品一区四区</a>| <a href="http://winkwink333.com" target="_blank">欧美激情中文字幕在线</a>| <a href="http://hhhtalk.com" target="_blank">夜夜夜久久久</a>| <a href="http://beeperagain.com" target="_blank">久久综合福利</a>| <a href="http://wanshunpu.com" target="_blank">国产精品久久久久久五月尺</a>| <a href="http://aydsrmyy.com" target="_blank">国产亚洲精品福利</a>| <a href="http://wlhtgj.com" target="_blank">亚洲美女精品成人在线视频</a>| <a href="http://njggmy.com" target="_blank">亚洲男同1069视频</a>| <a href="http://lao64.com" target="_blank">欧美v国产在线一区二区三区</a>| <a href="http://mm910.com" target="_blank">日韩视频永久免费</a>| <a href="http://by99969.com" target="_blank">久久精品视频在线播放</a>| <a href="http://royaljinma.com" target="_blank">欧美日韩1080p</a>| <a href="http://www-24333.com" target="_blank">国一区二区在线观看</a>| <a href="http://3333347.com" target="_blank">999亚洲国产精</a>| <a href="http://5588gww.com" target="_blank">久久伊人免费视频</a>| <a href="http://zhuankee.com" target="_blank">99视频日韩</a>| <a href="http://qhzyxcd.com" target="_blank">女人天堂亚洲aⅴ在线观看</a>| <a href="http://667939.com" target="_blank">国产精品亚洲欧美</a>| <a href="http://jnhrjixie.com" target="_blank">日韩一级黄色av</a>| <a href="http://www38044.com" target="_blank">老妇喷水一区二区三区</a>| <a href="http://www-333304.com" target="_blank">一区二区成人精品</a>| <a href="http://432dm.com" target="_blank">欧美成年人视频</a>| <a href="http://mysuteng.com" target="_blank">国内精品美女在线观看</a>| <a href="http://cnc800.com" target="_blank">亚洲专区欧美专区</a>| <a href="http://596361.com" target="_blank">最新日韩在线视频</a>| <a href="http://16355t.com" target="_blank">麻豆久久婷婷</a>| <a href="http://huangsedy.com" target="_blank">国产一区二区福利</a>| <a href="http://www101804.com" target="_blank">亚洲欧美制服另类日韩</a>| <a href="http://www-yh6.com" target="_blank">亚洲人体一区</a>| <a href="http://9e67.com" target="_blank">欧美www视频在线观看</a>| <a href="http://bocai4488.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>