锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鏈枃涓昏鍖呮嫭浜屼釜閮ㄥ垎錛岀涓閮ㄥ垎閲嶇偣浠嬬粛鍦╒C涓紝鎬庝箞鏍烽噰鐢╯izeof鏉ユ眰緇撴瀯鐨勫ぇ灝忥紝浠ュ強瀹規槗鍑虹幇鐨勯棶棰橈紝騫剁粰鍑鴻В鍐抽棶棰樼殑鏂規硶錛岀浜岄儴鍒嗘葷粨鍑篤C涓璼izeof鐨勪富瑕佺敤娉曘?/font> 1銆?sizeof搴旂敤鍦ㄧ粨鏋勪笂鐨勬儏鍐?/font> 璇風湅涓嬮潰鐨勭粨鏋勶細 struct MyStruct { double dda1; char dda; int type }; 瀵圭粨鏋凪yStruct閲囩敤sizeof浼氬嚭鐜頒粈涔堢粨鏋滃憿錛焥izeof(MyStruct)涓哄灝戝憿錛熶篃璁鎬綘浼氳繖鏍鋒眰錛?/font> sizeof(MyStruct)=sizeof(double)+sizeof(char)+sizeof(int)=13 浣嗘槸褰撳湪VC涓祴璇曚笂闈㈢粨鏋勭殑澶у皬鏃訛紝浣犱細鍙戠幇sizeof(MyStruct)涓?6銆備綘鐭ラ亾涓轟粈涔堝湪VC涓細寰楀嚭榪欐牱涓涓粨鏋滃悧錛?/font> 鍏跺疄錛岃繖鏄疺C瀵瑰彉閲忓瓨鍌ㄧ殑涓涓壒孌婂鐞嗐備負浜嗘彁楂楥PU鐨勫瓨鍌ㄩ熷害錛孷C瀵逛竴浜涘彉閲忕殑璧峰鍦?
鍧鍋氫簡“瀵歸綈”澶勭悊銆傚湪榛樿鎯呭喌涓嬶紝VC瑙勫畾鍚勬垚鍛樺彉閲忓瓨鏀劇殑璧峰鍦板潃鐩稿浜庣粨鏋勭殑璧峰鍦板潃鐨勫亸縐婚噺蹇呴』涓鴻鍙橀噺鐨勭被鍨嬫墍鍗犵敤鐨勫瓧鑺傛暟鐨勫嶆暟銆備笅闈㈠垪鍑哄父
鐢ㄧ被鍨嬬殑瀵歸綈鏂瑰紡(vc6.0,32浣嶇郴緇?銆?/font> 綾誨瀷 Char int float double Short 鍚勬垚鍛樺彉閲忓湪瀛樻斁鐨勬椂鍊欐牴鎹湪緇撴瀯涓嚭鐜扮殑欏哄簭渚濇鐢寵絀洪棿錛屽悓鏃舵寜鐓т笂闈㈢殑瀵歸綈鏂瑰紡璋冩暣浣?
緗紝絀虹己鐨勫瓧鑺俈C浼氳嚜鍔ㄥ~鍏呫傚悓鏃禫C涓轟簡紜繚緇撴瀯鐨勫ぇ灝忎負緇撴瀯鐨勫瓧鑺傝竟鐣屾暟錛堝嵆璇ョ粨鏋勪腑鍗犵敤鏈澶х┖闂寸殑綾誨瀷鎵鍗犵敤鐨勫瓧鑺傛暟錛夌殑鍊嶆暟錛屾墍浠ュ湪涓烘渶鍚庝竴涓?
鎴愬憳鍙橀噺鐢寵絀洪棿鍚庯紝榪樹細鏍規嵁闇瑕佽嚜鍔ㄥ~鍏呯┖緙虹殑瀛楄妭銆?/font> 涓嬮潰鐢ㄥ墠闈㈢殑渚嬪瓙鏉ヨ鏄嶸C鍒板簳鎬庝箞鏍鋒潵瀛樻斁緇撴瀯鐨勩?/font> struct MyStruct { double dda1; char dda; int type }錛?/font> 涓轟笂闈㈢殑緇撴瀯鍒嗛厤絀洪棿鐨勬椂鍊欙紝VC鏍規嵁鎴愬憳鍙橀噺鍑虹幇鐨勯『搴忓拰瀵歸綈鏂瑰紡錛屽厛涓虹涓涓垚鍛榙da1
鍒嗛厤絀洪棿錛屽叾璧峰鍦板潃璺熺粨鏋勭殑璧峰鍦板潃鐩稿悓錛堝垰濂藉亸縐婚噺0鍒氬ソ涓簊izeof(double)鐨勫嶆暟錛夛紝璇ユ垚鍛樺彉閲忓崰鐢╯izeof(double)=8
涓瓧鑺傦紱鎺ヤ笅鏉ヤ負絎簩涓垚鍛榙da鍒嗛厤絀洪棿錛岃繖鏃朵笅涓涓彲浠ュ垎閰嶇殑鍦板潃瀵逛簬緇撴瀯鐨勮搗濮嬪湴鍧鐨勫亸縐婚噺涓?錛屾槸sizeof(char)鐨勫嶆暟錛屾墍浠ユ妸dda
瀛樻斁鍦ㄥ亸縐婚噺涓?鐨勫湴鏂規弧瓚沖榻愭柟寮忥紝璇ユ垚鍛樺彉閲忓崰鐢╯izeof(char)=1涓瓧鑺傦紱鎺ヤ笅鏉ヤ負絎笁涓垚鍛榯ype鍒嗛厤絀洪棿錛岃繖鏃朵笅涓涓彲浠ュ垎閰嶇殑鍦?
鍧瀵逛簬緇撴瀯鐨勮搗濮嬪湴鍧鐨勫亸縐婚噺涓?錛屼笉鏄痵izeof(int)=4鐨勫嶆暟錛屼負浜嗘弧瓚沖榻愭柟寮忓鍋忕Щ閲忕殑綰︽潫闂錛孷C鑷姩濉厖3涓瓧鑺傦紙榪欎笁涓瓧鑺傛病鏈?
鏀句粈涔堜笢瑗匡級錛岃繖鏃朵笅涓涓彲浠ュ垎閰嶇殑鍦板潃瀵逛簬緇撴瀯鐨勮搗濮嬪湴鍧鐨勫亸縐婚噺涓?2錛屽垰濂芥槸sizeof(int)=4鐨勫嶆暟錛屾墍浠ユ妸type瀛樻斁鍦ㄥ亸縐婚噺涓?2
鐨勫湴鏂癸紝璇ユ垚鍛樺彉閲忓崰鐢╯izeof(int)=4涓瓧鑺傦紱榪欐椂鏁翠釜緇撴瀯鐨勬垚鍛樺彉閲忓凡緇忛兘鍒嗛厤浜嗙┖闂達紝鎬葷殑鍗犵敤鐨勭┖闂村ぇ灝忎負錛?+1+3+4=16錛屽垰濂?
涓虹粨鏋勭殑瀛楄妭杈圭晫鏁幫紙鍗崇粨鏋勪腑鍗犵敤鏈澶х┖闂寸殑綾誨瀷鎵鍗犵敤鐨勫瓧鑺傛暟sizeof(double)=8錛夌殑鍊嶆暟錛屾墍浠ユ病鏈夌┖緙虹殑瀛楄妭闇瑕佸~鍏呫傛墍浠ユ暣涓粨鏋勭殑
澶у皬涓猴細sizeof(MyStruct)=8+1+3+4=16錛屽叾涓湁3涓瓧鑺傛槸VC鑷姩濉厖鐨勶紝娌℃湁鏀句換浣曟湁鎰忎箟鐨勪笢瑗褲?/font> 涓嬮潰鍐嶄婦涓緥瀛愶紝浜ゆ崲涓涓嬩笂闈㈢殑MyStruct鐨勬垚鍛樺彉閲忕殑浣嶇疆錛屼嬌瀹冨彉鎴愪笅闈㈢殑鎯呭喌錛?/font> struct MyStruct { char dda; double dda1; int type }錛?/font> 榪欎釜緇撴瀯鍗犵敤鐨勭┖闂翠負澶氬ぇ鍛紵鍦╒C6.0鐜涓嬶紝鍙互寰楀埌sizeof(MyStruc)涓?4銆傜粨鍚堜笂闈㈡彁鍒扮殑鍒嗛厤絀洪棿鐨勪竴浜涘師鍒欙紝鍒嗘瀽涓媀C鎬庝箞鏍蜂負涓婇潰鐨勭粨鏋勫垎閰嶇┖闂寸殑銆傦紙綆鍗曡鏄庯級 struct MyStruct { char dda;//鍋忕Щ閲忎負0錛屾弧瓚沖榻愭柟寮忥紝dda鍗犵敤1涓瓧鑺傦紱 double dda1;//涓嬩竴涓彲鐢ㄧ殑鍦板潃鐨勫亸縐婚噺涓?錛屼笉鏄痵izeof(double)=8 //鐨勫嶆暟錛岄渶瑕佽ˉ瓚?涓瓧鑺傛墠鑳戒嬌鍋忕Щ閲忓彉涓?錛堟弧瓚沖榻?/font> //鏂瑰紡錛夛紝鍥犳VC鑷姩濉厖7涓瓧鑺傦紝dda1瀛樻斁鍦ㄥ亸縐婚噺涓? //鐨勫湴鍧涓婏紝瀹冨崰鐢?涓瓧鑺傘?/font> int type錛?/涓嬩竴涓彲鐢ㄧ殑鍦板潃鐨勫亸縐婚噺涓?6錛屾槸sizeof(int)=4鐨勫?/font> //鏁幫紝婊¤凍int鐨勫榻愭柟寮忥紝鎵浠ヤ笉闇瑕乂C鑷姩濉厖錛宼ype瀛?/font> //鏀懼湪鍋忕Щ閲忎負16鐨勫湴鍧涓婏紝瀹冨崰鐢?涓瓧鑺傘?/font> }錛?/鎵鏈夋垚鍛樺彉閲忛兘鍒嗛厤浜嗙┖闂達紝絀洪棿鎬葷殑澶у皬涓?+7+8+4=20錛屼笉鏄粨鏋?/font> //鐨勮妭杈圭晫鏁幫紙鍗崇粨鏋勪腑鍗犵敤鏈澶х┖闂寸殑綾誨瀷鎵鍗犵敤鐨勫瓧鑺傛暟sizeof //(double)=8錛夌殑鍊嶆暟錛屾墍浠ラ渶瑕佸~鍏?涓瓧鑺傦紝浠ユ弧瓚崇粨鏋勭殑澶у皬涓?/font> //sizeof(double)=8鐨勫嶆暟銆?/font> 鎵浠ヨ緇撴瀯鎬葷殑澶у皬涓猴細sizeof(MyStruc)涓?+7+8+4+4=24銆傚叾涓葷殑鏈?+4=11涓瓧鑺傛槸VC鑷姩濉厖鐨勶紝娌℃湁鏀句換浣曟湁鎰忎箟鐨勪笢瑗褲?/font> VC瀵圭粨鏋勭殑瀛樺偍鐨勭壒孌婂鐞嗙‘瀹炴彁楂楥PU瀛樺偍鍙橀噺鐨勯熷害錛屼絾鏄湁鏃跺欎篃甯︽潵浜嗕竴浜涢夯鐑︼紝鎴戜滑涔熷睆钄芥帀鍙橀噺榛樿鐨勫榻愭柟寮忥紝鑷繁鍙互璁懼畾鍙橀噺鐨勫榻愭柟寮忋?/font> VC涓彁渚涗簡#pragma
pack(n)鏉ヨ瀹氬彉閲忎互n瀛楄妭瀵歸綈鏂瑰紡銆俷瀛楄妭瀵歸綈灝辨槸璇村彉閲忓瓨鏀劇殑璧峰鍦板潃鐨勫亸縐婚噺鏈変袱縐嶆儏鍐碉細絎竴銆佸鏋渘澶т簬絳変簬璇ュ彉閲忔墍鍗犵敤鐨勫瓧鑺傛暟錛岄偅涔堝亸
縐婚噺蹇呴』婊¤凍榛樿鐨勫榻愭柟寮忥紝絎簩銆佸鏋渘灝忎簬璇ュ彉閲忕殑綾誨瀷鎵鍗犵敤鐨勫瓧鑺傛暟錛岄偅涔堝亸縐婚噺涓簄鐨勫嶆暟錛屼笉鐢ㄦ弧瓚抽粯璁ょ殑瀵歸綈鏂瑰紡銆傜粨鏋勭殑鎬誨ぇ灝忎篃鏈変釜綰︽潫鏉?
浠訛紝鍒嗕笅闈袱縐嶆儏鍐碉細濡傛灉n澶т簬鎵鏈夋垚鍛樺彉閲忕被鍨嬫墍鍗犵敤鐨勫瓧鑺傛暟錛岄偅涔堢粨鏋勭殑鎬誨ぇ灝忓繀欏諱負鍗犵敤絀洪棿鏈澶х殑鍙橀噺鍗犵敤鐨勭┖闂存暟鐨勫嶆暟錛?/font> 鍚﹀垯蹇呴』涓簄鐨勫嶆暟銆備笅闈婦渚嬭鏄庡叾鐢ㄦ硶銆?/font> #pragma pack(push) //淇濆瓨瀵歸綈鐘舵?/font> #pragma pack(4)//璁懼畾涓?瀛楄妭瀵歸綈 struct test { char m1; double m4; int m3; }; #pragma pack(pop)//鎭㈠瀵歸綈鐘舵?/font> 浠ヤ笂緇撴瀯鐨勫ぇ灝忎負16錛屼笅闈㈠垎鏋愬叾瀛樺偍鎯呭喌錛岄鍏堜負m1鍒嗛厤絀洪棿錛屽叾鍋忕Щ閲忎負0錛屾弧瓚蟲垜浠嚜宸?
璁懼畾鐨勫榻愭柟寮忥紙4瀛楄妭瀵歸綈錛夛紝m1鍗犵敤1涓瓧鑺傘傛帴鐫寮濮嬩負m4鍒嗛厤絀洪棿錛岃繖鏃跺叾鍋忕Щ閲忎負1錛岄渶瑕佽ˉ瓚?涓瓧鑺傦紝榪欐牱浣垮亸縐婚噺婊¤凍涓簄=4鐨勫嶆暟錛堝洜涓?
sizeof(double)澶т簬n錛?m4鍗犵敤8涓瓧鑺傘傛帴鐫涓簃3鍒嗛厤絀洪棿錛岃繖鏃跺叾鍋忕Щ閲忎負12錛屾弧瓚充負4鐨勫嶆暟錛宮3鍗犵敤4涓瓧鑺傘傝繖鏃跺凡緇忎負鎵鏈?
鎴愬憳鍙橀噺鍒嗛厤浜嗙┖闂達紝鍏卞垎閰嶄簡16涓瓧鑺傦紝婊¤凍涓簄鐨勫嶆暟銆傚鏋滄妸涓婇潰鐨?pragma pack(4)鏀逛負#pragma
pack(16)錛岄偅涔堟垜浠彲浠ュ緱鍒扮粨鏋勭殑澶у皬涓?4銆傦紙璇瘋鑰呰嚜宸卞垎鏋愶級 2銆?sizeof鐢ㄦ硶鎬葷粨 鍦╒C涓紝sizeof鏈夌潃璁稿鐨勭敤娉曪紝鑰屼笖寰堝鏄撳紩璧蜂竴浜涢敊璇備笅闈㈡牴鎹畇izeof鍚庨潰鐨勫弬鏁板sizeof鐨勭敤娉曞仛涓葷粨銆?/font> A錛?鍙傛暟涓烘暟鎹被鍨嬫垨鑰呬負涓鑸彉閲忋備緥濡俿izeof(int),sizeof(long)絳夌瓑銆傝繖縐嶆儏鍐佃娉ㄦ剰鐨勬槸涓嶅悓緋葷粺緋葷粺鎴栬呬笉鍚岀紪璇戝櫒寰楀埌鐨勭粨鏋滃彲鑳芥槸涓嶅悓鐨勩備緥濡俰nt綾誨瀷鍦?6浣嶇郴緇熶腑鍗?涓瓧鑺傦紝鍦?2浣嶇郴緇熶腑鍗?涓瓧鑺傘?/font> B錛?鍙傛暟涓烘暟緇勬垨鎸囬拡銆備笅闈婦渚嬭鏄? int a[50]; //sizeof(a)=4*50=200; 姹傛暟緇勬墍鍗犵殑絀洪棿澶у皬 int *a=new int[50];// sizeof(a)=4; a涓轟竴涓寚閽堬紝sizeof(a)鏄眰鎸囬拡 //鐨勫ぇ灝?鍦?2浣嶇郴緇熶腑錛屽綋鐒舵槸鍗?涓瓧鑺傘?/font> C錛?鍙傛暟涓虹粨鏋勬垨綾匯係izeof搴旂敤鍦ㄧ被鍜岀粨鏋勭殑澶勭悊鎯呭喌鏄浉鍚岀殑銆備絾鏈変袱鐐歸渶瑕佹敞鎰忥紝絎竴銆佺粨鏋勬垨鑰呯被涓殑闈欐佹垚鍛樹笉瀵圭粨鏋勬垨鑰呯被鐨勫ぇ灝忎駭鐢熷獎鍝嶏紝鍥犱負闈欐佸彉閲忕殑瀛樺偍浣嶇疆涓庣粨鏋勬垨鑰呯被鐨勫疄渚嬪湴鍧鏃犲叧銆?/font> 絎簩銆佹病鏈夋垚鍛樺彉閲忕殑緇撴瀯鎴栫被鐨勫ぇ灝忎負1錛屽洜涓哄繀欏諱繚璇佺粨鏋勬垨綾葷殑姣忎竴 涓疄渚嬪湪鍐呭瓨涓兘鏈夊敮涓鐨勫湴鍧銆?/font> 涓嬮潰涓句緥璇存槑錛?/font> Class Test{int a;static double c};//sizeof(Test)=4. Test *s;//sizeof(s)=4,s涓轟竴涓寚閽堛?/font> Class test1{ };//sizeof(test1)=1; D錛?鍙傛暟涓哄叾浠栥備笅闈婦渚嬭鏄庛?/font> int func(char s[5]); { cout< //浠izeof(s)瀹為檯涓婁負姹傛寚閽堢殑澶у皬銆?/font> return 1; } sizeof(func(“1234”))=4//鍥犱負func鐨勮繑鍥炵被鍨嬩負int錛屾墍浠ョ浉褰撲簬 //姹俿izeof(int).
]]>
瀵歸綈鏂瑰紡錛堝彉閲忓瓨鏀劇殑璧峰鍦板潃鐩稿浜庣粨鏋勭殑璧峰鍦板潃鐨勫亸縐婚噺錛?/font>
鍋忕Щ閲忓繀欏諱負sizeof(char)鍗?鐨勫嶆暟
鍋忕Щ閲忓繀欏諱負sizeof(int)鍗?鐨勫嶆暟
鍋忕Щ閲忓繀欏諱負sizeof(float)鍗?鐨勫嶆暟
鍋忕Щ閲忓繀欏諱負sizeof(double)鍗?鐨勫嶆暟
鍋忕Щ閲忓繀欏諱負sizeof(short)鍗?鐨勫嶆暟
//鏁扮殑鍙傛暟鍦ㄤ紶閫掔殑鏃跺欑郴緇熷鐞嗕負涓涓寚閽堬紝鎵
]]>
--寰愪笢鏉?/p>
鎽樿錛?鍦–++浠嶤緇ф壙鐨勯仐浜т腑錛岄澶勭悊瀹忔槸鍏朵腑鐨勪竴閮ㄥ垎銆傚湪鐜頒唬C++鐨勫彂灞曡繃紼嬩腑錛岄澶勭悊瀹忔槸鍚﹁繕鏈夋剰涔夛紵鏈枃灝嗚璁轟箣銆?/strong>
鍏抽敭瀛楋細 棰勫鐞?瀹?#define #pragma
C++涓湁閭d箞澶氱伒媧葷殑鐗規э紝渚嬪閲嶈澆銆佺被鍨嬪畨鍏ㄧ殑妯℃澘銆乧onst鍏抽敭瀛楃瓑絳夛紝涓轟粈涔堢▼搴忓憳榪樿鍐?#8220;#define”榪欐牱鐨勯澶勭悊鎸囦護錛?/strong>
鍏稿瀷鐨勪竴涓緥瀛愶紝澶у閮界煡閬?#8220;const int a=100;”灝辨瘮“#define a 100”瑕佸ソ錛屽洜涓篶onst鎻愪緵綾誨瀷瀹夊叏銆侀伩鍏嶄簡棰勫鐞嗙殑鎰忓淇敼絳夈?/strong>
鐒惰岋紝榪樻槸鏈変竴浜涚悊鐢辮鎴戜滑鍘諱嬌鐢?define銆?/strong>
1錛?nbsp; 瀹堟姢澶存枃浠?/strong>
涓轟簡闃叉澶存枃浠惰澶氭鍖呭惈錛岃繖鏄竴縐嶅父鐢ㄦ妧宸с?/strong>
#ifndef MYPROG_X_H
#define MYPROG_X_H
// … 澶存枃浠秞.h鐨勫叾浣欓儴鍒?/strong>
#endif
2錛?nbsp; 浣跨敤棰勫鐞嗙壒鎬?/strong>
鍦ㄨ皟璇曚唬鐮佷腑錛屾彃鍏ヨ鍙鋒垨緙栬瘧鏃墮棿榪欑被淇℃伅閫氬父寰堟湁鐢紝鍙互浣跨敤棰勫畾涔夌殑鏍囧噯瀹忥紝渚嬪__FILE__銆乢_LINE__銆乢_DATE__鍜宊_TIME__銆?/strong>
3錛?nbsp; 緙栬瘧鏃舵湡閫夋嫨浠g爜
A. 璋冭瘯浠g爜
閫夋嫨鎬х殑杈撳嚭涓浜涜皟璇曚俊鎭細
void f()
{
#ifdef _DEBUG
cerr<<”璋冭瘯淇℃伅”<<endl;
#endif
// .. f()鐨勫叾浠栭儴鍒?/strong>
}
閫氬父鎴戜滑涔熷彲浠ョ敤鏉′歡鍒ゆ柇鏉ヤ唬鏇匡細
void f()
{
if(_DEBUG)
{
cerr<<”璋冭瘯淇℃伅”<<endl;
}
// .. f()鐨勫叾浠栭儴鍒?/strong>
}
B. 鐗瑰畾騫沖彴浠g爜
鍚屼竴鍑芥暟鍚屼竴鍔熻兘鍦ㄤ笉鍚岀殑緙栬瘧騫沖彴涓婂彲鑳芥湁涓嶅悓鐨勮〃鐜板艦寮忥紝鎴戜滑鍙互閫氳繃瀹氫箟瀹忔潵鍖哄垎涓嶅悓鐨勫鉤鍙般?/strong>
C. 涓嶅悓鐨勬暟鎹〃紺烘柟寮?/strong>
<<娣卞叆嫻呭嚭MFC>>榪欐湰涔﹀MFC妗嗘灦涓畯鐨勪嬌鐢ㄨВ鏋愮殑寰堥忓交錛屼篃璁╂垜浠鐣ュ埌瀹忕殑寮哄ぇ鍔熻兘銆傚彲浠ュ弬鐪婦ECLARE_MESSAGE_MAP(),
BEGIN_MESSAGE_MAP, END_MESSAGE_MAP鐨勫疄鐜般?/strong>
4錛?nbsp; #pragma鐨勪嬌鐢紝渚嬪鐢?pragma紱佹鎺夋棤浼ゅぇ闆呯殑璀﹀憡錛岀敤浜庡彲縐繪鎬х殑鏉′歡緙栬瘧涓備緥濡傦紝
鍖呭惈winsock2 lib鏂囦歡錛?/strong>
#pragma comment(lib,”ws2_32”)
鐢ㄥ涓嬮澶勭悊瀹忥紝鍙互浣跨粨鏋勬寜1瀛楃粨瀵歸綈錛?/strong>
#pragma pack(push)
#pragma pack(1)
// … 緇撴瀯瀹氫箟
#pragma pack(pop)
紱佹鎺夋煇浜涜鍛婁俊鎭細
#pragma warning( push )
#pragma warning( disable : 4705 )
#pragma warning( disable : 4706 )
#pragma warning( error : 164 )// 鎶?64鍙瘋鍛婁綔涓洪敊璇姤鍑?/strong>
// Some code
#pragma warning( pop )
涓嬮潰紺鴻寖濡備綍鍐欎竴涓畝鍗曠殑棰勫鐞嗗畯max()錛涜繖涓畯鏈変袱涓弬鏁幫紝姣旇緝騫惰繑鍥炲叾涓緝澶х殑涓涓箋傚湪鍐欒繖鏍蜂竴涓畯鏃訛紝瀹規槗鐘摢浜涢敊璇紵鏈夊洓澶ф槗鐘敊璇?/strong>
1錛?nbsp; 涓嶈蹇樿涓哄弬鏁板姞涓婃嫭鍙?/strong>
// 渚?錛氭嫭鍙烽櫡闃變竴錛氬弬鏁?/strong>
//
#define max(a, b) a < b ? b : a
渚嬪錛?/strong>
max(i += 2, j)
灞曞紑鍚庯細
i += 2 < j ? j : i += 2
鑰冭檻榪愮畻絎︿紭鍏堢駭鍜岃璦瑙勫垯錛屽疄闄呬笂鏄細
i += ((2 < j) ? j : i += 2)
榪欑閿欒鍙兘闇瑕侀暱鏃墮棿鐨勮皟璇曟墠鍙互鍙戠幇銆?/strong>
2錛?nbsp; 涓嶈蹇樿涓烘暣涓睍寮寮忓姞涓婃嫭鍙?/strong>
// 渚?錛氭嫭鍙烽櫡闃變簩錛氬睍寮寮?/strong>
//
#define max(a, b) (a) < (b) ? (b) : (a)
渚嬪錛?/strong>
m = max(j, k) + 42;
灞曞紑鍚庝負錛?/strong>
m = (j) < (k) ? (j) : (k) + 42;
鑰冭檻榪愮畻絎︿紭鍏堢駭鍜岃璦瑙勫垯錛屽疄闄呬笂鏄細
m = ((j) < (k)) ? (j) : ((k) + 42);
濡傛灉j >= k, m琚祴鍊糼+42,姝g‘錛涘鏋渏 < k, m琚祴鍊糺,鏄敊璇殑銆傚鏋滅粰灞曞紑寮忓姞涓婃嫭鍙鳳紝灝辮В鍐充簡榪欎釜闂銆?/strong>
3錛?nbsp; 褰撳績澶氬弬鏁拌繍綆?/strong>
// 渚?錛氬鍙傛暟榪愮畻
//
#define max(a, b) ((a) < (b) ? (b) : (a))
max(++j, k);
濡傛灉++j鐨勭粨鏋滃ぇ浜巏錛宩浼氶掑涓ゆ錛岃繖鍙兘涓嶆槸紼嬪簭鍛樻兂瑕佺殑錛?/strong>
((++j) < (k) ? (k) : (++j))
綾諱技鐨勶細
max(f(), pi)
灞曞紑鍚庯細
((f()) < (pi) ? (pi) : (f()))
濡傛灉f()鐨勭粨鏋滃ぇ浜庣瓑浜巔i錛宖()浼氭墽琛屼袱嬈★紝榪欑粷瀵圭己涔忔晥鐜囷紝鑰屼笖鍙兘鏄敊璇殑銆?/strong>
4錛?nbsp; 鍚嶅瓧鍐茬獊
瀹忓彧鏄墽琛屾枃鏈浛鎹紝鑰屼笉綆℃枃鏈湪鍝効錛岃繖鎰忓懗鐫鍙浣跨敤瀹忥紝灝辮灝忓績瀵硅繖浜涘畯鍛藉悕銆傚叿浣撴潵璇達紝榪欎釜max瀹忔渶澶х殑闂鏄紝鏋佹湁鍙兘浼氬拰鏍囧噯鐨刴ax()鍑芥暟妯℃澘鍐茬獊錛?/strong>
// 渚?錛氬悕瀛楀啿紿?/strong>
//
#define max(a,b) ((a) < (b) ? (b) : (a))
#include <algorithm> // 鍐茬獊!
鍦?lt;algorithm>涓紝鏈夊涓嬶細
template<typename T> const T&
max(const T& a, const T& b);
瀹忓皢瀹冩浛鎹負濡備笅錛屽皢鏃犳硶緙栬瘧錛?/strong>
template<typename T> const T&
((const T& a) < (const T& b) ? (const T& b) : (const T& a));
鎵浠ワ紝鎴戜滑灝介噺閬垮厤鍛藉悕鐨勫啿紿侊紝鎯沖嚭涓涓笉騫沖父鐨勶紝闅句互鎷煎啓鐨勫悕瀛楋紝榪欐牱鎵嶈兘鏈澶у彲鑳藉湴閬垮厤涓庡叾浠栧悕瀛楃┖闂村啿紿併?/strong>
瀹忕殑鍏朵粬緙洪櫡錛?/strong>
5錛?nbsp; 瀹忎笉鑳介掑綊
瀹規槗鐞嗚В銆?/strong>
6錛?nbsp; 瀹忔病鏈夊湴鍧
浣犲彲鑳藉緱鍒頒換浣曡嚜鐢卞嚱鏁版垨鎴愬憳鍑芥暟鐨勬寚閽堬紝浣嗕笉鍙兘寰楀埌涓涓畯鐨勬寚閽堬紝鍥犱負瀹忔病鏈夊湴鍧銆傚畯涔嬫墍浠ユ病鏈夊湴鍧錛屽師鍥犲緢鏄劇劧===瀹忎笉鏄唬鐮侊紝瀹忎笉浼氫互鑷韓鐨勫艦鍔垮瓨鍦紝鍥犱負瀹冩槸涓縐嶈緹庡寲浜嗙殑鏂囨湰鏇挎崲瑙勫垯銆?/strong>
7錛?nbsp; 瀹忔湁紕嶈皟璇?/strong>
鍦ㄧ紪璇戝櫒鐪嬪埌浠g爜涔嬪墠錛屽畯灝變細淇敼鐩稿簲鐨勪唬鐮侊紝鍥犺岋紝浠栦細涓ラ噸鏀瑰彉鍙橀噺鍚嶇О鍜屽叾浠栧悕縐幫紱姝ゅ錛屽湪璋冭瘯闃舵錛屾棤娉曡窡韙埌瀹忕殑鍐呴儴銆?/strong>