锘??xml version="1.0" encoding="utf-8" standalone="yes"?>99热精品久久只有精品,一级做a爰片久久毛片16,青青草国产精品久久http://www.shnenglu.com/sgq116300/archive/2007/11/14/36576.htmlsunGuoqinsunGuoqinWed, 14 Nov 2007 04:35:00 GMThttp://www.shnenglu.com/sgq116300/archive/2007/11/14/36576.htmlhttp://www.shnenglu.com/sgq116300/comments/36576.htmlhttp://www.shnenglu.com/sgq116300/archive/2007/11/14/36576.html#Feedback8http://www.shnenglu.com/sgq116300/comments/commentRss/36576.htmlhttp://www.shnenglu.com/sgq116300/services/trackbacks/36576.html鍦ㄦ墍鏈夎鏄庝箣鍓嶏紝緇欏ぇ瀹跺嚭涓閬撻鐩細

int a=256;

printf("%d\n", sizeof(++a));

printf("%d\n", a);

閭d箞鍒板簳鎵撳嵃鐨勬槸澶氬皯鍛紵

搴旇鏄?鍜?56錛屾垜鎯崇涓涓瓟妗堝ぇ瀹跺簲璇ュ凡緇忔病鏈夐棶棰樹簡錛屼絾鏄負浠涔堝湪++a浠ュ悗錛宎鐨勬暟鍊艱繕鏄病鏈夊彂鐢熷彉鍖栧憿錛熷洜涓簊izeof錛堬級鏄竴涓繍綆楃錛屽湪鍏朵腑鐨勬墍鏈夌殑榪愮畻閮芥槸鏃犳晥鐨勶紝鎵浠?+a鏍規湰灝辨病鏈夎繍琛屻?/p>

涓婇潰鐨勪竴涓緥瀛愭彁閱掓垜浠紝铏界劧sizeof鐪嬭繖綆鍗曪紝浣嗘槸鍏朵腑榪樻槸鏈夊緢澶氱殑闂鍊煎緱璁ㄨ鐨勶紝鍛靛懙銆?br>

涓銆乻izeof鐨勬蹇?/strong>銆 
銆銆sizeof鏄疌璇█鐨勪竴縐嶅崟鐩搷浣滅錛屽C璇█鐨勫叾浠栨搷浣滅++銆?-絳夈傚畠騫朵笉鏄嚱鏁般俿izeof鎿嶄綔絎︿互瀛楄妭褰㈠紡緇欏嚭浜嗗叾鎿嶄綔鏁扮殑瀛樺偍澶у皬銆?span class="Title">鎿嶄綔鏁板彲浠ユ槸涓涓〃杈懼紡鎴栨嫭鍦ㄦ嫭鍙峰唴鐨勭被鍨嬪悕銆傛搷浣滄暟鐨勫瓨鍌ㄥぇ灝忕敱鎿嶄綔鏁扮殑綾誨瀷鍐沖畾銆傘 

浜屻乻izeof鐨勪嬌鐢ㄦ柟娉曘 
銆銆1銆佺敤浜庢暟鎹被鍨嬨 

銆銆sizeof浣跨敤褰㈠紡錛歴izeof錛坱ype錛夈 

銆銆鏁版嵁綾誨瀷蹇呴』鐢ㄦ嫭鍙鋒嫭浣忋傚sizeof錛坕nt錛夈傘 

銆銆2銆佺敤浜庡彉閲忋 

銆銆sizeof浣跨敤褰㈠紡錛歴izeof錛坴ar_name錛夋垨sizeof銆var_name銆 

銆銆鍙橀噺鍚嶅彲浠ヤ笉鐢ㄦ嫭鍙鋒嫭浣忋傚sizeof銆(var_name)錛宻izeof銆var_name絳夐兘鏄紜艦寮忋傚甫鎷彿鐨勭敤娉曟洿鏅亶錛屽ぇ澶氭暟紼嬪簭鍛橀噰鐢ㄨ繖縐嶅艦寮忋傘 

銆銆娉ㄦ剰錛?/strong>sizeof鎿嶄綔絎︿笉鑳界敤浜庡嚱鏁扮被鍨嬶紝涓嶅畬鍏ㄧ被鍨嬫垨浣嶅瓧孌點備笉瀹屽叏綾誨瀷鎸囧叿鏈夋湭鐭ュ瓨鍌ㄥぇ灝忕殑鏁版嵁綾誨瀷錛屽鏈煡瀛樺偍澶у皬鐨勬暟緇勭被鍨嬨佹湭鐭ュ唴瀹圭殑緇撴瀯鎴栬仈鍚堢被鍨嬨乿oid綾誨瀷絳夈傘 

銆銆濡俿izeof(max)鑻ユ鏃跺彉閲弇ax瀹氫箟涓篿nt銆max(),sizeof(char_v)銆鑻ユ鏃禼har_v瀹氫箟涓篶har銆char_v銆[MAX]涓擬AX鏈煡錛宻izeof(void)閮戒笉鏄紜艦寮忋傘 

涓夈乻izeof鐨勭粨鏋溿 
銆銆sizeof鎿嶄綔絎︾殑緇撴灉綾誨瀷鏄痵ize_t錛屽畠鍦ㄥご鏂囦歡

涓璽ypedef涓簎nsigned銆int綾誨瀷銆傝綾誨瀷淇濊瘉鑳藉綰沖疄鐜版墍寤虹珛鐨勬渶澶у璞$殑瀛楄妭澶у皬銆傘 

銆銆1銆佽嫢鎿嶄綔鏁板叿鏈夌被鍨媍har銆乽nsigned銆char鎴杝igned銆char錛屽叾緇撴灉絳変簬1銆傘 

銆銆ANSI銆C姝e紡瑙勫畾瀛楃綾誨瀷涓?瀛楄妭銆傘 

2銆乮nt銆乽nsigned銆int銆銆乻hort銆int銆乽nsigned銆short銆銆乴ong銆int銆銆乽nsigned銆long銆銆?  float銆乨ouble銆乴ong銆double綾誨瀷鐨剆izeof銆鍦ˋNSI銆C涓病鏈夊叿浣撹瀹氾紝澶у皬渚濊禆浜庡疄鐜幫紝涓鑸彲鑳藉垎鍒負2銆?銆?銆? 2銆?nbsp;4銆?銆?銆?銆?0銆傘 

銆銆3銆佸綋鎿嶄綔鏁版槸鎸囬拡鏃訛紝sizeof渚濊禆浜庣紪璇戝櫒銆備緥濡侻icrosoft銆C/C++7.0涓紝near綾繪寚閽堝瓧鑺傛暟涓?錛宖ar銆乭uge綾繪寚閽堝瓧鑺傛暟涓?銆備竴鑸琔nix鐨勬寚閽堝瓧鑺傛暟涓?銆傘 

銆銆4銆佸綋鎿嶄綔鏁板叿鏈夋暟緇勭被鍨嬫椂錛屽叾緇撴灉鏄暟緇勭殑鎬誨瓧鑺傛暟銆傘 

銆銆5銆佽仈鍚堢被鍨嬫搷浣滄暟鐨剆izeof鏄叾鏈澶у瓧鑺傛垚鍛樼殑瀛楄妭鏁般傜粨鏋勭被鍨嬫搷浣滄暟鐨剆izeof鏄繖縐嶇被鍨嬪璞$殑鎬誨瓧鑺傛暟錛屽寘鎷換浣曞灚琛ュ湪鍐呫傘 

銆銆璁╂垜浠湅濡備笅緇撴瀯錛氥 

銆銆struct銆{char銆b;銆double銆x;}銆a;銆 

銆銆鍦ㄦ煇浜涙満鍣ㄤ笂sizeof錛坅錛?12錛岃屼竴鑸瑂izeof錛坈har錛?銆sizeof錛坉ouble錛?9銆傘 

銆銆榪欐槸鍥犱負緙栬瘧鍣ㄥ湪鑰冭檻瀵歸綈闂鏃訛紝鍦ㄧ粨鏋勪腑鎻掑叆絀轟綅浠ユ帶鍒跺悇鎴愬憳瀵硅薄鐨勫湴鍧瀵歸綈銆傚double綾誨瀷鐨勭粨鏋勬垚鍛榵瑕佹斁鍦ㄨ4鏁撮櫎鐨勫湴鍧銆傘 

銆銆6銆佸鏋滄搷浣滄暟鏄嚱鏁頒腑鐨勬暟緇勫艦鍙傛垨鍑芥暟綾誨瀷鐨勫艦鍙傦紝sizeof緇欏嚭鍏舵寚閽堢殑澶у皬銆傘 

鍥涖乻izeof涓庡叾浠栨搷浣滅鐨勫叧緋匯 
銆銆sizeof鐨勪紭鍏堢駭涓?綰э紝姣?銆?絳?綰ц繍綆楃浼樺厛綰ч珮銆傚畠鍙互涓庡叾浠栨搷浣滅涓璧風粍鎴愯〃杈懼紡銆傚i*sizeof錛坕nt錛夛紱鍏朵腑i涓篿nt綾誨瀷鍙橀噺銆傘 

浜斻乻izeof鐨勪富瑕佺敤閫斻 
銆銆1銆乻izeof鎿嶄綔絎︾殑涓涓富瑕佺敤閫旀槸涓庡瓨鍌ㄥ垎閰嶅拰I/O緋葷粺閭f牱鐨勪緥紼嬭繘琛岄氫俊銆備緥濡傦細銆 

銆銆void銆*malloc錛坰ize_t銆size錛?銆 

銆銆size_t銆fread(void銆*銆ptr,size_t銆size,size_t銆nmemb,FILE銆*銆stream)銆傘 

銆銆2銆乻izeof鐨勫彟涓涓殑涓昏鐢ㄩ旀槸璁$畻鏁扮粍涓厓绱犵殑涓暟銆備緥濡傦細銆 

銆銆void銆*銆memset錛坴oid銆*銆s,int銆c,sizeof(s)錛夈傘 

鍏佸緩璁 
銆銆鐢變簬鎿嶄綔鏁扮殑瀛楄妭鏁板湪瀹炵幇鏃跺彲鑳藉嚭鐜板彉鍖栵紝寤鴻鍦ㄦ秹鍙婂埌鎿嶄綔鏁板瓧鑺傚ぇ灝忔椂鐢╯izeof鏉ヤ唬鏇垮父閲忚綆椼?br>

=============================================================
鏈枃涓昏鍖呮嫭浜屼釜閮ㄥ垎錛岀涓閮ㄥ垎閲嶇偣浠嬬粛鍦╒C涓紝鎬庝箞鏍烽噰鐢╯izeof鏉ユ眰緇撴瀯鐨勫ぇ灝忥紝浠ュ強瀹規槗鍑虹幇鐨勯棶棰橈紝騫剁粰鍑鴻В鍐抽棶棰樼殑鏂規硶錛岀浜岄儴鍒嗘葷粨鍑篤C涓璼izeof鐨勪富瑕佺敤娉曘?nbsp;

1銆?nbsp;sizeof搴旂敤鍦ㄧ粨鏋勪笂鐨勬儏鍐?/strong> 

璇風湅涓嬮潰鐨勭粨鏋勶細 

struct MyStruct 



double dda1; 

char dda; 

int type 

}; 

瀵圭粨鏋凪yStruct閲囩敤sizeof浼氬嚭鐜頒粈涔堢粨鏋滃憿錛焥izeof(MyStruct)涓哄灝戝憿錛熶篃璁鎬綘浼氳繖鏍鋒眰錛?nbsp;

sizeof(MyStruct)=sizeof(double)+sizeof(char)+sizeof(int)=13 

浣嗘槸褰撳湪VC涓祴璇曚笂闈㈢粨鏋勭殑澶у皬鏃訛紝浣犱細鍙戠幇sizeof(MyStruct)涓?6銆備綘鐭ラ亾涓轟粈涔堝湪VC涓細寰楀嚭榪欐牱涓涓粨鏋滃悧錛?nbsp;

鍏? 瀹烇紝榪欐槸VC瀵瑰彉閲忓瓨鍌ㄧ殑涓涓壒孌婂鐞嗐備負浜嗘彁楂楥PU鐨勫瓨鍌ㄩ熷害錛孷C瀵逛竴浜涘彉閲忕殑璧峰鍦板潃鍋氫簡"瀵歸綈"澶勭悊銆傚湪榛樿鎯呭喌涓嬶紝VC瑙勫畾鍚勬垚鍛樺彉閲忓瓨鏀劇殑 璧峰鍦板潃鐩稿浜庣粨鏋勭殑璧峰鍦板潃鐨勫亸縐婚噺蹇呴』涓鴻鍙橀噺鐨勭被鍨嬫墍鍗犵敤鐨勫瓧鑺傛暟鐨勫嶆暟銆備笅闈㈠垪鍑哄父鐢ㄧ被鍨嬬殑瀵歸綈鏂瑰紡(vc6.0,32浣嶇郴緇?銆?nbsp;

綾誨瀷 
瀵歸綈鏂瑰紡錛堝彉閲忓瓨鏀劇殑璧峰鍦板潃鐩稿浜庣粨鏋勭殑璧峰鍦板潃鐨勫亸縐婚噺錛?nbsp;

Char 
鍋忕Щ閲忓繀欏諱負sizeof(char)鍗?鐨勫嶆暟 

int 
鍋忕Щ閲忓繀欏諱負sizeof(int)鍗?鐨勫嶆暟 

float 
鍋忕Щ閲忓繀欏諱負sizeof(float)鍗?鐨勫嶆暟 

double 
鍋忕Щ閲忓繀欏諱負sizeof(double)鍗?鐨勫嶆暟 

Short 
鍋忕Щ閲忓繀欏諱負sizeof(short)鍗?鐨勫嶆暟 


鍚? 鎴愬憳鍙橀噺鍦ㄥ瓨鏀劇殑鏃跺欐牴鎹湪緇撴瀯涓嚭鐜扮殑欏哄簭渚濇鐢寵絀洪棿錛屽悓鏃舵寜鐓т笂闈㈢殑瀵歸綈鏂瑰紡璋冩暣浣嶇疆錛岀┖緙虹殑瀛楄妭VC浼氳嚜鍔ㄥ~鍏呫傚悓鏃禫C涓轟簡紜繚緇撴瀯鐨勫ぇ灝忎負緇? 鏋勭殑瀛楄妭杈圭晫鏁幫紙鍗寵緇撴瀯涓崰鐢ㄦ渶澶х┖闂寸殑綾誨瀷鎵鍗犵敤鐨勫瓧鑺傛暟錛夌殑鍊嶆暟錛屾墍浠ュ湪涓烘渶鍚庝竴涓垚鍛樺彉閲忕敵璇風┖闂村悗錛岃繕浼氭牴鎹渶瑕佽嚜鍔ㄥ~鍏呯┖緙虹殑瀛楄妭銆?nbsp;

涓嬮潰鐢ㄥ墠闈㈢殑渚嬪瓙鏉ヨ鏄嶸C鍒板簳鎬庝箞鏍鋒潵瀛樻斁緇撴瀯鐨勩?nbsp;

struct MyStruct 



double dda1; 

char dda; 

int type 

}錛?nbsp;

涓? 涓婇潰鐨勭粨鏋勫垎閰嶇┖闂寸殑鏃跺欙紝VC鏍規嵁鎴愬憳鍙橀噺鍑虹幇鐨勯『搴忓拰瀵歸綈鏂瑰紡錛屽厛涓虹涓涓垚鍛榙da1鍒嗛厤絀洪棿錛屽叾璧峰鍦板潃璺熺粨鏋勭殑璧峰鍦板潃鐩稿悓錛堝垰濂藉亸縐婚噺0鍒氬ソ 涓簊izeof(double)鐨勫嶆暟錛夛紝璇ユ垚鍛樺彉閲忓崰鐢╯izeof(double)=8涓瓧鑺傦紱鎺ヤ笅鏉ヤ負絎簩涓垚鍛榙da鍒嗛厤絀洪棿錛岃繖鏃朵笅涓涓彲浠ュ垎 閰嶇殑鍦板潃瀵逛簬緇撴瀯鐨勮搗濮嬪湴鍧鐨勫亸縐婚噺涓?錛屾槸sizeof(char)鐨勫嶆暟錛屾墍浠ユ妸dda瀛樻斁鍦ㄥ亸縐婚噺涓?鐨勫湴鏂規弧瓚沖榻愭柟寮忥紝璇ユ垚鍛樺彉閲忓崰鐢?  sizeof(char)=1涓瓧鑺傦紱鎺ヤ笅鏉ヤ負絎笁涓垚鍛榯ype鍒嗛厤絀洪棿錛岃繖鏃朵笅涓涓彲浠ュ垎閰嶇殑鍦板潃瀵逛簬緇撴瀯鐨勮搗濮嬪湴鍧鐨勫亸縐婚噺涓?錛屼笉鏄? sizeof (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鑷姩濉厖鐨勶紝娌℃湁鏀句換浣曟湁鎰忎箟鐨勪笢瑗褲?nbsp;

涓嬮潰鍐嶄婦涓緥瀛愶紝浜ゆ崲涓涓嬩笂闈㈢殑MyStruct鐨勬垚鍛樺彉閲忕殑浣嶇疆錛屼嬌瀹冨彉鎴愪笅闈㈢殑鎯呭喌錛?nbsp;

struct MyStruct 



char dda; 

double dda1;   

int type 

}錛?nbsp;

榪欎釜緇撴瀯鍗犵敤鐨勭┖闂翠負澶氬ぇ鍛紵鍦╒C6.0鐜涓嬶紝鍙互寰楀埌sizeof(MyStruc)涓?4銆傜粨鍚堜笂闈㈡彁鍒扮殑鍒嗛厤絀洪棿鐨勪竴浜涘師鍒欙紝鍒嗘瀽涓媀C鎬庝箞鏍蜂負涓婇潰鐨勭粨鏋勫垎閰嶇┖闂寸殑銆傦紙綆鍗曡鏄庯級 

struct MyStruct 



  char dda;//鍋忕Щ閲忎負0錛屾弧瓚沖榻愭柟寮忥紝dda鍗犵敤1涓瓧鑺傦紱 

double dda1;//涓嬩竴涓彲鐢ㄧ殑鍦板潃鐨勫亸縐婚噺涓?錛屼笉鏄痵izeof(double)=8 

             //鐨勫嶆暟錛岄渶瑕佽ˉ瓚?涓瓧鑺傛墠鑳戒嬌鍋忕Щ閲忓彉涓?錛堟弧瓚沖榻?nbsp;

             //鏂瑰紡錛夛紝鍥犳VC鑷姩濉厖7涓瓧鑺傦紝dda1瀛樻斁鍦ㄥ亸縐婚噺涓? 

             //鐨勫湴鍧涓婏紝瀹冨崰鐢?涓瓧鑺傘?nbsp;

int type錛?/涓嬩竴涓彲鐢ㄧ殑鍦板潃鐨勫亸縐婚噺涓?6錛屾槸sizeof(int)=4鐨勫?nbsp;

           //鏁幫紝婊¤凍int鐨勫榻愭柟寮忥紝鎵浠ヤ笉闇瑕乂C鑷姩濉厖錛宼ype瀛?nbsp;

           //鏀懼湪鍋忕Щ閲忎負16鐨勫湴鍧涓婏紝瀹冨崰鐢?涓瓧鑺傘?nbsp;

}錛?/鎵鏈夋垚鍛樺彉閲忛兘鍒嗛厤浜嗙┖闂達紝絀洪棿鎬葷殑澶у皬涓?+7+8+4=20錛屼笉鏄粨鏋?nbsp;

   //鐨勮妭杈圭晫鏁幫紙鍗崇粨鏋勪腑鍗犵敤鏈澶х┖闂寸殑綾誨瀷鎵鍗犵敤鐨勫瓧鑺傛暟sizeof 

   //(double)=8錛夌殑鍊嶆暟錛屾墍浠ラ渶瑕佸~鍏?涓瓧鑺傦紝浠ユ弧瓚崇粨鏋勭殑澶у皬涓?nbsp;

   //sizeof(double)=8鐨勫嶆暟銆?nbsp;


鎵浠ヨ緇撴瀯鎬葷殑澶у皬涓猴細sizeof(MyStruc)涓?+7+8+4+4=24銆傚叾涓葷殑鏈?+4=11涓瓧鑺傛槸VC鑷姩濉厖鐨勶紝娌℃湁鏀句換浣曟湁鎰忎箟鐨勪笢瑗褲?nbsp;


VC瀵圭粨鏋勭殑瀛樺偍鐨勭壒孌婂鐞嗙‘瀹炴彁楂楥PU瀛樺偍鍙橀噺鐨勯熷害錛屼絾鏄湁鏃跺欎篃甯︽潵浜嗕竴浜涢夯鐑︼紝鎴戜滑涔熷睆钄芥帀鍙橀噺榛樿鐨勫榻愭柟寮忥紝鑷繁鍙互璁懼畾鍙橀噺鐨勫榻愭柟寮忋?nbsp;

#pragma pack(n)
VC  涓彁渚涗簡#pragma pack(n)鏉ヨ瀹氬彉閲忎互n瀛楄妭瀵歸綈鏂瑰紡銆俷瀛楄妭瀵歸綈灝辨槸璇村彉閲忓瓨鏀劇殑璧峰鍦板潃鐨勫亸縐婚噺鏈変袱縐嶆儏鍐碉細絎竴銆佸鏋渘澶т簬絳変簬璇ュ彉 閲忔墍鍗犵敤鐨勫瓧鑺傛暟錛岄偅涔堝亸縐婚噺蹇呴』婊¤凍榛樿鐨勫榻愭柟寮忥紝絎簩銆佸鏋渘灝忎簬璇ュ彉閲忕殑綾誨瀷鎵鍗犵敤鐨勫瓧鑺傛暟錛岄偅涔堝亸縐婚噺涓簄鐨勫嶆暟錛屼笉鐢ㄦ弧瓚抽粯璁ょ殑瀵歸綈鏂瑰紡銆傜粨 鏋勭殑鎬誨ぇ灝忎篃鏈変釜綰︽潫鏉′歡錛屽垎涓嬮潰涓ょ鎯呭喌錛氬鏋渘澶т簬鎵鏈夋垚鍛樺彉閲忕被鍨嬫墍鍗犵敤鐨勫瓧鑺傛暟錛岄偅涔堢粨鏋勭殑鎬誨ぇ灝忓繀欏諱負鍗犵敤絀洪棿鏈澶х殑鍙橀噺鍗犵敤鐨勭┖闂存暟鐨勫嶆暟錛?   

鍚﹀垯蹇呴』涓簄鐨勫嶆暟銆備笅闈婦渚嬭鏄庡叾鐢ㄦ硶銆?nbsp;

#pragma pack(push) //淇濆瓨瀵歸綈鐘舵?nbsp;

#pragma pack(4)//璁懼畾涓?瀛楄妭瀵歸綈 

struct test 



  char m1; 

  double m4; 

  int  m3; 

}; 

#pragma pack(pop)//鎭㈠瀵歸綈鐘舵?nbsp;

浠? 涓婄粨鏋勭殑澶у皬涓?6錛屼笅闈㈠垎鏋愬叾瀛樺偍鎯呭喌錛岄鍏堜負m1鍒嗛厤絀洪棿錛屽叾鍋忕Щ閲忎負0錛屾弧瓚蟲垜浠嚜宸辮瀹氱殑瀵歸綈鏂瑰紡錛?瀛楄妭瀵歸綈錛夛紝m1鍗犵敤1涓瓧鑺傘傛帴鐫寮濮嬩負  m4鍒嗛厤絀洪棿錛岃繖鏃跺叾鍋忕Щ閲忎負1錛岄渶瑕佽ˉ瓚?涓瓧鑺傦紝榪欐牱浣垮亸縐婚噺婊¤凍涓簄=4鐨勫嶆暟錛堝洜涓簊izeof(double)澶т簬n錛?m4鍗犵敤8涓瓧鑺傘? 鎺ョ潃涓簃3鍒嗛厤絀洪棿錛岃繖鏃跺叾鍋忕Щ閲忎負12錛屾弧瓚充負4鐨勫嶆暟錛宮3鍗犵敤4涓瓧鑺傘傝繖鏃跺凡緇忎負鎵鏈夋垚鍛樺彉閲忓垎閰嶄簡絀洪棿錛屽叡鍒嗛厤浜?6涓瓧鑺傦紝婊¤凍涓簄鐨勫嶆暟銆? 濡傛灉鎶婁笂闈㈢殑#pragma pack(4)鏀逛負#pragma pack(16)錛岄偅涔堟垜浠彲浠ュ緱鍒扮粨鏋勭殑澶у皬涓?4銆傦紙璇瘋鑰呰嚜宸卞垎鏋愶級 

2銆?nbsp;sizeof鐢ㄦ硶鎬葷粨 

鍦╒C涓紝sizeof鏈夌潃璁稿鐨勭敤娉曪紝鑰屼笖寰堝鏄撳紩璧蜂竴浜涢敊璇備笅闈㈡牴鎹畇izeof鍚庨潰鐨勫弬鏁板sizeof鐨勭敤娉曞仛涓葷粨銆?nbsp;

A錛?nbsp; 鍙傛暟涓烘暟鎹被鍨嬫垨鑰呬負涓鑸彉閲忋備緥濡俿izeof(int),sizeof(long)絳夌瓑銆傝繖縐嶆儏鍐佃娉ㄦ剰鐨勬槸涓嶅悓緋葷粺緋葷粺鎴栬呬笉鍚岀紪璇戝櫒寰楀埌鐨勭粨鏋滃彲鑳芥槸涓嶅悓鐨勩備緥濡俰nt綾誨瀷鍦?6浣嶇郴緇熶腑鍗?涓瓧鑺傦紝鍦?2浣嶇郴緇熶腑鍗?涓瓧鑺傘?nbsp;

B錛?nbsp; 鍙傛暟涓烘暟緇勬垨鎸囬拡銆備笅闈婦渚嬭鏄? 

int a[50];  //sizeof(a)=4*50=200; 姹傛暟緇勬墍鍗犵殑絀洪棿澶у皬 

int *a=new int[50];// sizeof(a)=4; a涓轟竴涓寚閽堬紝sizeof(a)鏄眰鎸囬拡 

                   //鐨勫ぇ灝?鍦?2浣嶇郴緇熶腑錛屽綋鐒舵槸鍗?涓瓧鑺傘?nbsp;

C錛?nbsp; 鍙傛暟涓虹粨鏋勬垨綾匯係izeof搴旂敤鍦ㄧ被鍜岀粨鏋勭殑澶勭悊鎯呭喌鏄浉鍚岀殑銆備絾鏈変袱鐐歸渶瑕佹敞鎰忥紝絎竴銆佺粨鏋勬垨鑰呯被涓殑闈欐佹垚鍛樹笉瀵圭粨鏋勬垨鑰呯被鐨勫ぇ灝忎駭鐢熷獎鍝嶏紝鍥犱負闈欐佸彉閲忕殑瀛樺偍浣嶇疆涓庣粨鏋勬垨鑰呯被鐨勫疄渚嬪湴鍧鏃犲叧銆?nbsp;

絎簩銆佹病鏈夋垚鍛樺彉閲忕殑緇撴瀯鎴栫被鐨勫ぇ灝忎負1錛屽洜涓哄繀欏諱繚璇佺粨鏋勬垨綾葷殑姣忎竴 

涓疄渚嬪湪鍐呭瓨涓兘鏈夊敮涓鐨勫湴鍧銆?nbsp;

涓嬮潰涓句緥璇存槑錛?nbsp;

Class Test{int a;static double c};//sizeof(Test)=4. 

Test *s;//sizeof(s)=4,s涓轟竴涓寚閽堛?nbsp;

Class test1{ };//sizeof(test1)=1; 

D錛?nbsp; 鍙傛暟涓哄叾浠栥備笅闈婦渚嬭鏄庛?nbsp;

   int func(char s[5]); 

   { 

     cout<<sizeof(s);//榪欓噷灝嗚緭鍑?錛屾湰鏉涓轟竴涓暟緇勶紝浣嗙敱浜庡仛涓哄嚱 

                     //鏁扮殑鍙傛暟鍦ㄤ紶閫掔殑鏃跺欑郴緇熷鐞嗕負涓涓寚閽堬紝鎵 

                     //浠izeof(s)瀹為檯涓婁負姹傛寚閽堢殑澶у皬銆?nbsp;

     return 1; 



sizeof(func("1234"))=4//鍥犱負func鐨勮繑鍥炵被鍨嬩負int錛屾墍浠ョ浉褰撲簬 

                     //姹俿izeof(int). 


浠ヤ笂涓簊izeof鐨勫熀鏈敤娉曪紝鍦ㄥ疄闄呯殑浣跨敤涓娉ㄦ剰鍒嗘瀽VC鐨勫垎閰嶅彉閲忕殑鍒嗛厤絳栫暐錛岃繖鏍風殑璇濆彲浠ラ伩鍏嶄竴浜涢敊璇?br> 



sunGuoqin 2007-11-14 12:35 鍙戣〃璇勮
]]>
鍐呮牳printf婧愪唬鐮佸垎鏋?http://www.shnenglu.com/sgq116300/archive/2007/11/14/36575.htmlsunGuoqinsunGuoqinWed, 14 Nov 2007 04:27:00 GMThttp://www.shnenglu.com/sgq116300/archive/2007/11/14/36575.htmlhttp://www.shnenglu.com/sgq116300/comments/36575.htmlhttp://www.shnenglu.com/sgq116300/archive/2007/11/14/36575.html#Feedback3http://www.shnenglu.com/sgq116300/comments/commentRss/36575.htmlhttp://www.shnenglu.com/sgq116300/services/trackbacks/36575.html

鎵撳紑Source Insight鏉ラ槄璇籈duOS鐨勬簮浠g爜,鎴戜滑鍦╯tdio.c閲屾壘鍒頒簡printf鐨勫疄鐜頒唬鐮?棣栧厛鐪嬬湅瀵筽rintf鐨勫畾涔?
[code]
int printf (const char *cntrl_string, ...)
[/code]
絎竴涓弬鏁癱ntrl_string鏄帶鍒跺瓧絎︿覆,涔熷氨鏄鉤甯告垜浠啓鍏?d,%f鐨勫湴鏂?绱ф帴鐫鍚庨潰鏄竴涓彉闀垮弬鏁?

鐪嬬湅鍑芥暟澶撮儴鐨勫畾涔?

  [code]int pos = 0, cnt_printed_chars = 0, i;
  unsigned char* chptr;
  va_list ap;[/code]
椹笂鏅?闄や簡ap鎴戜滑鍙互椹笂鍒ゆ柇鍑烘潵鏄敤鏉ヨ鍙栧彉闀垮弬鏁扮殑,i鐢ㄤ簬寰幆鍙橀噺.鍏朵粬鍙橀噺閮戒笉鐭ラ亾鏄庝箞鍥炰簨.涓嶈鐫鎬?鎴戜滑杈圭湅浠g爜杈瑰垎鏋?浠g爜鐨勭涓琛屽繀鐒舵槸

[code]va_start (ap, cntrl_string);[/code]
鐢ㄦ潵鍒濆鍖栧彉闀垮弬鏁?

鎺ヤ笅鏉ユ槸涓涓獁hile寰幆

[code]while (cntrl_string[pos]) {
...
}[/code]

緇撴潫鏉′歡鏄痗ntrl_string[pos]涓篘ULL,鏄劇劧榪欎釜寰幆鏄敤鏉ラ亶鍘嗘暣涓帶鍒跺瓧絎︿覆鐨?鑷劧pos灝辨槸褰撳墠閬嶅巻鍒扮殑浣嶇疆浜?榪涘叆寰幆棣栧厛闂叆瑙嗙嚎鐨勬槸

[code] if (cntrl_string[pos] == '%') {
      pos++;
      ...
 } [/code]

寮闂ㄨ灞?涓婃潵灝卞綋鍓嶅瓧絎︽槸鍚﹀姙鏂槸鍚?.涓鐚滃氨鐭ラ亾濡傛灉鎴愮珛pos++椹笂鍙栧嚭涓嬩竴涓瓧絎﹀湪d,f,l絳夌瓑涔嬮棿榪涜鍒ゆ柇.寰涓嬩竴鐪?鏋滅湡涓嶅嚭鎵鏂?

[code]switch (cntrl_string[pos]) {
    case 'c':
...
    case 's':
...
    case 'i':
...
    case 'd':
...
    case 'u':
...[/code]

鐢ㄤ笂switch-case浜? 蹇熸祻瑙堜竴涓嬩笅闈㈢殑浠g爜.

棣栧厛鐪嬬湅case 'c'鐨勯儴鍒?/p>

[code]case 'c':
 putchar (va_arg (ap, unsigned char));
 cnt_printed_chars++;
 break;[/code]

%c琛ㄧず浠呬粎杈撳嚭涓涓瓧絎?鍥犳鍏堥氳繃va_arg榪涜鍙傛暟鐨勭被鍨嬭漿鎹?涔嬪悗鐢╬utchar[1]杈撳嚭鍒板睆騫曚笂鍘?涔嬪悗鏄?br>cnt_printed_chars++,閫氳繃榪欏彞鎴戜滑灝卞彲浠ュ垽鏂嚭cnt_printed_chars浣跨敤鏉ヨ〃紺?宸茬粡琚玴rintf杈撳嚭鐨勫瓧絎︿釜鏁扮殑.

鍐嶆潵鐪嬬湅 case 's':
[code]      case 's':
 chptr = va_arg (ap, unsigned char*);
 i = 0;
 while (chptr [i]) {
   cnt_printed_chars++;
   putchar (chptr [i++]);
 }
 break;[/code]鍜宑ase 'c',鍚屽嚭涓杈?cnt_printed_chars++鏀懼湪浜嗗驚鐜唴,涔熻瘉鏄庝簡鍒氭墠鎻愬埌鐨勪粬鐨勪綔鐢?鍙﹀鎴戜滑涔熺湅鍒頒簡cnptr鏄敤鏉ュ湪澶勭悊瀛楃涓叉椂鐨勪綅緗寚閽?鍒版涓烘,鎴戜滑娓呮鐨勬墍鏈夊彉閲忕殑鐢ㄩ?鍓嶉斿彉寰楁洿鍔犲厜鏄庝簡.

鎺ヤ笅鏉?
[code]// PartI
      case 'i':
      case 'd':
 cnt_printed_chars += printInt (va_arg (ap, int));
 break;
      case 'u':
 cnt_printed_chars += printUnsignedInt (va_arg (ap, unsigned int));
 break;
      case 'x':
 cnt_printed_chars += printHexa (va_arg (ap, unsigned int), 'x');
 break;
      case 'X':
 cnt_printed_chars += printHexa (va_arg (ap, unsigned int), 'X');
 break;
      case 'o':
 cnt_printed_chars += printOctal (va_arg (ap, unsigned int));
 break;
// Part II
 case 'p':
 putchar ('0');
 putchar ('x');
 cnt_printed_chars += 2; /* of '0x' */
 cnt_printed_chars += printHexa (va_arg (ap, unsigned int), 'x');
 break;
      case '#':
 pos++;
 switch (cntrl_string[pos]) {
 case 'x':
   putchar ('0');
   putchar ('x');
   cnt_printed_chars += 2; /* of '0x' */
   cnt_printed_chars += printHexa (va_arg (ap, unsigned int), 'x');
   break;
 case 'X':
   putchar ('0');
   putchar ('X');
   cnt_printed_chars += 2; /* of '0X' */
   cnt_printed_chars += printHexa (va_arg (ap, unsigned int), 'X');
   break;
 case 'o':
   putchar ('0');
   cnt_printed_chars++;
   cnt_printed_chars += printOctal (va_arg (ap, unsigned int));
   break;[/code]
娉ㄦ剰瑙傚療涓涓?PartII鐨勪唬鐮佸叾瀹炲氨鏄瘮PartI鐨勪唬鐮佸涓涓牱寮?鍦?6榪涘埗鏁版垨鍏繘鍒跺墠鍔犲叆0x鎴栨槸o,絳夌瓑.鍥犳榪欓噷灝卞彧鍒嗘瀽涓涓婸artI鍜?

鍏跺疄浠旂粏鐪嬬湅PartI鐨勪釜鏉ase,涔熷氨鏄妸鍙傛暟鍒嗗彂鍒頒簡鏇村叿浣撶殑鍑芥暟鐢ㄤ簬鏄劇ず,鐒跺悗浠ヨ繑鍥炲肩殑褰㈠紡榪斿洖杈撳嚭涓暟.瀵逛簬榪欎簺鍑芥暟灝變笉鍏蜂綋鍒嗘瀽浜?鎴戜滑鍏堟潵鐪嬬湅涓浜涘杽鍚庡鐞?

鍏堢湅case鐨刣efault澶勭悊.
[code]default:
 putchar ((unsigned char) cntrl_string[pos]);
 cnt_printed_chars++;[/code]灝辨槸鐩存帴杈撳嚭cntrl_string閲?鍙峰悗闈㈢殑鏈煡瀛楃.搴旇鏄竴縐嶅閿欒璁″鐞?

鍐嶇湅鐪媔f (cntrl_string[pos] == '%')鐨別lse閮ㄥ垎
     
[code]else {
      putchar ((unsigned char) cntrl_string[pos]);
      cnt_printed_chars++;
      pos++;
 }[/code]
濡傛灉涓嶆槸%寮澶寸殑,閭d箞鐩存帴杈撳嚭榪欎釜瀛楃.

鏈鍚庡嚱鏁拌繑鍥炲墠
  [code]va_end (ap);
  return cnt_printed_chars;[/code]va_end澶勭悊鍙橀暱鍙傛暟鐨勫杽鍚庡伐浣?騫惰繑鍥炶緭鍑虹殑瀛楃涓暟.

鍦ㄦ渶鍚庢垜浠湁蹇呰璋堣皥putChar鍑芥暟浠ュ強鍩烘湰杈撳嚭鐨勫熀紜鍑芥暟printChar,鍏堟潵鐪嬬湅putChar

[code]int putchar (int c) {
  switch ((unsigned char) c) {
  case '\n' :
    newLine ();
    break;
  case '\r' :
    carriageReturn ();
    break;
  case '\f' :
    clearScreen ();
    break;
  case '\t' :
    printChar (32); printChar (32); /* 32 = space */
    printChar (32); printChar (32);
    printChar (32); printChar (32);
    printChar (32); printChar (32);
    break;
  case '\b':
    backspace ();
    break;
  case '\a':
    beep ();
    break;
  default :
    printChar ((unsigned char) c);
  }
  return c;
}[/code]
閫? 瑙堜竴涓?涔熸槸switch-case涓轟富浣撶殑.涓昏鏄敤鏉ュ簲瀵逛竴浜涚壒孌婂瓧絎?濡俓n,\r,....榪欓噷闇瑕佹彁涓涓?鍏充簬\t鐨勭悊瑙?鏈変簺浜鴻涓篭t灝辨槸 8涓猻pace,鏈変簺浜哄垯璁や負,灞忓箷鍒嗕負10澶у垪(姣忎釜澶у垪8涓皬鍒楁誨叡80鍒?.涓涓猏t灝辮煩鍒頒笅涓涓ぇ鍒楄緭鍑?涔熷氨鏄涓嶇浣犵幇鍦ㄥ疄鍦ㄥ睆騫曠殑絎? 1,2,3,4,5,6,7浣嶇疆杈撳嚭瀛楃,鍙涓涓猏t閮藉湪絎?涓綅緗紑濮嬭緭鍑? VS.NET涓氨鏄敤鐨勮繖縐嶇悊瑙?鍥犳濡傛灉鎸夌収榪欎釜鐞嗚В鐨勮瘽,\t鐨勫疄鐜板彲浠ヨ繖鏍?/p>

[code]int currentX = ((currentX % 10) + 1) * 8;[/code]

鐒跺悗鍦╟urrentX浣嶇疆杈撳嚭.

鎺ヤ笅鏉ョ湅printChar涔熷氨鏄緭鍑洪儴鍒嗘渶浣庡眰鐨勬搷浣滃挴

[code]void printChar (const byte ch) {
  *(word *)(VIDEO + y * 160 + x * 2) = ch | (fill_color << 8);
  x++;
  if (x >= WIDTH)
    newLine ();
  setVideoCursor (y, x);
}[/code] 榪欓噷VIDEO琛ㄧず鏄懼瓨鍦板潃涔熷氨鏄?xB8000.閫氳繃 y * 160 + x 灞忓箷(x,y)鍧愭爣鍦ㄦ樉瀛樹腑鐨勪綅緗?榪欓噷闇瑕佺煡閬?涓涓瓧絎︽樉紺洪渶瑕佷袱涓瓧鑺?涓涓槸ASCII鐮?絎簩涓槸瀛楃灞炴т唬鐮佷篃灝辨槸棰滆壊浠g爜.鍥犳鎵嶅繀欏? y * 80 * 2 + x = y * 160 + x.閭d箞ch | (fill_color << 8)涔熻嚜鐒跺氨鏄啓鍏ュ瓧絎﹀強灞炴т唬鐮佺敤鐨勪簡.姣忓啓涓涓瓧絎﹀厜鏍囦綅緗姞1,濡傛灉澶т簬灞忓箷瀹藉害WIDTH灝辨崲琛?鏈鍚庨氳繃setVideoCursor璁劇疆鏂扮殑 鍏夋爣浣嶇疆.瀹屾垚浜嗘暣涓猵rintChar榪囩▼.



sunGuoqin 2007-11-14 12:27 鍙戣〃璇勮
]]>
97精品伊人久久久大香线蕉| 香蕉久久夜色精品国产尤物| 久久久国产精品福利免费| 亚洲国产精品无码久久一线| 精品少妇人妻av无码久久| 99久久精品免费国产大片| 日韩久久久久中文字幕人妻| 日本WV一本一道久久香蕉| 国产精品天天影视久久综合网| 狠狠色伊人久久精品综合网| 亚洲中文字幕无码久久精品1| 99久久无码一区人妻a黑| 亚洲精品99久久久久中文字幕| 亚洲va中文字幕无码久久不卡| 99久久亚洲综合精品成人| 久久精品国产亚洲AV不卡| 国产成人精品久久亚洲| 男女久久久国产一区二区三区| 久久人人爽人人爽人人片AV麻豆 | 精品多毛少妇人妻AV免费久久 | 99999久久久久久亚洲| 日韩欧美亚洲国产精品字幕久久久| 久久婷婷成人综合色综合| 人妻无码久久精品| 国产成人精品久久一区二区三区av| 色婷婷综合久久久久中文一区二区| 久久精品成人欧美大片| 香蕉久久一区二区不卡无毒影院| 无码精品久久久久久人妻中字| 国产精品久久久久久久app| 国产69精品久久久久99尤物| 青草影院天堂男人久久| 久久国产精品无码一区二区三区| 7777精品久久久大香线蕉| 久久天天躁夜夜躁狠狠| 日批日出水久久亚洲精品tv| 成人国内精品久久久久影院VR| 日本三级久久网| 免费观看成人久久网免费观看| 欧美伊香蕉久久综合类网站| 成人a毛片久久免费播放|