锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久99这里只有精品国产,亚洲精品国精品久久99热,浪潮AV色综合久久天堂http://m.shnenglu.com/JonsenElizee/category/13491.htmlC++ Blog <BR> <BR> "An idea is fragile . It can be killed by a scornful smile or a yawn .It can be mound down by irony and scared to death by a cold look." <BR> "Most cultures throughout human history have not liked creative individuals .They ignore them or kill them.It is a very efficient way of stopping creativity." <BR> <BR> ------Advertising boss Charles Browe and Howard Gardner ,professor at Harvard zh-cnTue, 03 Aug 2010 06:46:20 GMTTue, 03 Aug 2010 06:46:20 GMT60About C++ sizeofhttp://m.shnenglu.com/JonsenElizee/archive/2010/07/22/121020.htmlJonsenElizeeJonsenElizeeThu, 22 Jul 2010 04:20:00 GMThttp://m.shnenglu.com/JonsenElizee/archive/2010/07/22/121020.html鍘熸枃浣滆呭強(qiáng)鏂囩珷鏉ユ簮

1銆佷粈涔堟槸sizeof

    棣栧厛鐪嬩竴涓媠izeof鍦╩sdn涓婄殑瀹氫箟錛?/font>

    The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t.

    鐪嬪埌return榪欎釜瀛楃溂錛屾槸涓嶆槸鎯沖埌浜?jiǎn)鍑芥晭图熼敊浜?jiǎn)錛宻izeof涓嶆槸涓涓嚱鏁幫紝浣犺榪囩粰涓涓嚱鏁頒紶鍙傛暟錛岃屼笉鍔犳嫭鍙風(fēng)殑鍚楋紵sizeof鍙互錛屾墍浠izeof涓嶆槸鍑芥暟銆傜綉涓婃湁浜鴻sizeof鏄竴鍏冩搷浣滅錛屼絾鏄垜騫朵笉榪欎箞璁や負(fù)錛屽洜涓簊izeof鏇村儚涓涓壒孌婄殑瀹忥紝瀹冩槸鍦ㄧ紪璇戦樁孌墊眰鍊肩殑銆備婦涓緥瀛愶細(xì)
 
 cout<<sizeof(int)<<endl; // 32浣嶆満涓奿nt闀垮害涓?
 cout<<sizeof(1==2)<<endl; // == 鎿嶄綔絎﹁繑鍥瀊ool綾誨瀷錛岀浉褰撲簬 cout<<sizeof(bool)<<endl;

    鍦ㄧ紪璇戦樁孌靛凡緇忚緲昏瘧涓猴細(xì)

 cout<<4<<endl;
 cout<<1<<endl;

    榪欓噷鏈変釜闄烽槺錛岀湅涓嬮潰鐨勭▼搴忥細(xì)

 int a = 0;
 cout<<sizeof(a=3)<<endl;
 cout<<a<<endl;

    杈撳嚭涓轟粈涔堟槸4錛?鑰屼笉鏄湡鏈涗腑鐨?錛?錛燂紵錛熷氨鍦ㄤ簬sizeof鍦ㄧ紪璇戦樁孌靛鐞嗙殑鐗規(guī)с傜敱浜巗izeof涓嶈兘琚紪璇戞垚鏈哄櫒鐮侊紝鎵浠izeof浣滅敤鑼冨洿鍐咃紝涔熷氨鏄?)閲岄潰鐨勫唴瀹逛篃涓嶈兘琚紪璇戯紝鑰屾槸琚浛鎹㈡垚綾誨瀷銆?鎿嶄綔絎﹁繑鍥炲乏鎿嶄綔鏁扮殑綾誨瀷錛屾墍浠=3鐩稿綋浜巌nt錛岃屼唬鐮佷篃琚浛鎹負(fù)錛?/font>

 int a = 0;
 cout<<4<<endl;
 cout<<a<<endl;

    鎵浠ワ紝sizeof鏄笉鍙兘鏀寔閾懼紡琛ㄨ揪寮忕殑錛岃繖涔熸槸鍜屼竴鍏冩搷浣滅涓嶄竴鏍風(fēng)殑鍦版柟銆?/font>

    緇撹錛氫笉瑕佹妸sizeof褰撴垚鍑芥暟錛屼篃涓嶈鐪嬩綔涓鍏冩搷浣滅錛屾妸浠栧綋鎴愪竴涓壒孌婄殑緙栬瘧棰勫鐞嗐?/font>

2銆乻izeof鐨勭敤娉?/font>

    sizeof鏈変袱縐嶇敤娉曪細(xì)
 
    錛?錛塻izeof(object)
    涔熷氨鏄瀵硅薄浣跨敤sizeof錛屼篃鍙互鍐欐垚sizeof object 鐨勫艦寮忋備緥濡傦細(xì)

    錛?錛塻izeof(typename)
    涔熷氨鏄綾誨瀷浣跨敤sizeof錛屾敞鎰忚繖縐嶆儏鍐典笅鍐欐垚sizeof typename鏄潪娉曠殑銆備笅闈婦鍑犱釜渚嬪瓙璇存槑涓涓嬶細(xì)


 int i = 2;
 cout<<sizeof(i)<<endl; // sizeof(object)鐨勭敤娉曪紝鍚堢悊
 cout<<sizeof i<<endl; // sizeof object鐨勭敤娉曪紝鍚堢悊
 cout<<sizeof 2<<endl; // 2琚В鏋愭垚int綾誨瀷鐨刼bject, sizeof object鐨勭敤娉曪紝鍚堢悊
 cout<<sizeof(2)<<endl; // 2琚В鏋愭垚int綾誨瀷鐨刼bject, sizeof(object)鐨勭敤娉曪紝鍚堢悊
 cout<<sizeof(int)<<endl;// sizeof(typename)鐨勭敤娉曪紝鍚堢悊
 cout<<sizeof int<<endl; // 閿欒錛佸浜庢搷浣滅錛屼竴瀹氳鍔?)

    鍙互鐪嬪嚭錛屽姞()鏄案榪滄紜殑閫夋嫨銆?/font>

    緇撹錛氫笉璁簊izeof瑕佸璋佸彇鍊鹼紝鏈濂介兘鍔犱笂()銆?/font>


3銆佹暟鎹被鍨嬬殑sizeof

錛?錛塁++鍥烘湁鏁版嵁綾誨瀷

    32浣岰++涓殑鍩烘湰鏁版嵁綾誨瀷錛屼篃灝眂har,short int(short),int,long int(long),float,double, long double
澶у皬鍒嗗埆鏄細(xì)1錛?錛?錛?錛?錛?, 10銆?/font>

    鑰冭檻涓嬮潰鐨勪唬鐮侊細(xì)

 cout<<sizeof(unsigned int) == sizeof(int)<<endl; // 鐩哥瓑錛岃緭鍑?1

    unsigned褰卞搷鐨勫彧鏄渶楂樹綅bit鐨勬剰涔夛紝鏁版嵁闀垮害涓嶄細(xì)琚敼鍙樼殑銆?/font>

    緇撹錛歶nsigned涓嶈兘褰卞搷sizeof鐨勫彇鍊箋?/font>

錛?錛夎嚜瀹氫箟鏁版嵁綾誨瀷

    typedef鍙互鐢ㄦ潵瀹氫箟C++鑷畾涔夌被鍨嬨傝冭檻涓嬮潰鐨勯棶棰橈細(xì)

 typedef short WORD;
 typedef long DWORD;
 cout<<(sizeof(short) == sizeof(WORD))<<endl; // 鐩哥瓑錛岃緭鍑?
 cout<<(sizeof(long) == sizeof(DWORD))<<endl; // 鐩哥瓑錛岃緭鍑?

    緇撹錛氳嚜瀹氫箟綾誨瀷鐨剆izeof鍙栧肩瓑鍚屼簬瀹冪殑綾誨瀷鍘熷艦銆?/font>

錛?錛夊嚱鏁扮被鍨?/font>

    鑰冭檻涓嬮潰鐨勯棶棰橈細(xì)

 int f1(){return 0;};
 double f2(){return 0.0;}
 void f3(){}

 cout<<sizeof(f1())<<endl; // f1()榪斿洖鍊間負(fù)int錛屽洜姝よ璁や負(fù)鏄痠nt
 cout<<sizeof(f2())<<endl; // f2()榪斿洖鍊間負(fù)double錛屽洜姝よ璁や負(fù)鏄痙ouble
 cout<<sizeof(f3())<<endl; // 閿欒錛佹棤娉曞void綾誨瀷浣跨敤sizeof
 cout<<sizeof(f1)<<endl;  // 閿欒錛佹棤娉曞鍑芥暟鎸囬拡浣跨敤sizeof   
 cout<<sizeof*f2<<endl;  // *f2錛屽拰f2()絳変環(huán)錛屽洜涓哄彲浠ョ湅浣渙bject錛屾墍浠ユ嫭鍙蜂笉鏄繀瑕佺殑銆傝璁や負(fù)鏄痙ouble

    緇撹錛氬鍑芥暟浣跨敤sizeof錛屽湪緙栬瘧闃舵浼?xì)琚嚱鏁皹q斿洖鍊肩殑綾誨瀷鍙栦唬錛?/font>

4銆佹寚閽堥棶棰?/font>

    鑰冭檻涓嬮潰闂錛?br> 
 cout<<sizeof(string*)<<endl; // 4
 cout<<sizeof(int*)<<endl; // 4
 cout<<sizof(char****)<<endl; // 4

    鍙互鐪嬪埌錛屼笉綆℃槸浠涔堢被鍨嬬殑鎸囬拡錛屽ぇ灝忛兘鏄?鐨勶紝鍥犱負(fù)鎸囬拡灝辨槸32浣嶇殑鐗╃悊鍦板潃銆?/font>

    緇撹錛氬彧瑕佹槸鎸囬拡錛屽ぇ灝忓氨鏄?銆傦紙64浣嶆満涓婅鍙樻垚8涔熶笉涓瀹氾級(jí)銆?/font>

    欏轟究鍞у敡姝鍑犲彞錛孋++涓殑鎸囬拡琛ㄧず瀹為檯鍐呭瓨鐨勫湴鍧銆傚拰C涓嶄竴鏍風(fēng)殑鏄紝C++涓彇娑堜簡(jiǎn)妯″紡涔嬪垎錛屼篃灝辨槸涓嶅啀鏈塻mall,middle,big,鍙栬屼唬涔嬬殑鏄粺涓鐨刦lat銆俧lat妯″紡閲囩敤32浣嶅疄鍦板潃瀵誨潃錛岃屼笉鍐嶆槸c涓殑 segment:offset妯″紡銆備婦涓緥瀛愶紝鍋囧鏈変竴涓寚鍚戝湴鍧 f000:8888鐨勬寚閽堬紝濡傛灉鏄疌綾誨瀷鍒欐槸8888(16浣? 鍙瓨鍌ㄤ綅縐伙紝鐪佺暐孌?錛宖ar綾誨瀷鐨凜鎸囬拡鏄痜0008888(32浣嶏紝楂樹綅淇濈暀孌靛湴鍧錛屽湴浣嶄繚鐣欎綅縐?,C++綾誨瀷鐨勬寚閽堟槸f8888(32浣嶏紝鐩稿綋浜庢鍦板潃*16 + 浣嶇Щ錛屼絾瀵誨潃鑼冨洿瑕佹洿澶?銆?/font>

5銆佹暟緇勯棶棰?/font>

    鑰冭檻涓嬮潰闂錛?/font>

 char a[] = "abcdef";
 int b[20] = {3, 4};
 char c[2][3] = {"aa", "bb"};
 

 cout<<sizeof(a)<<endl; // 7
 cout<<sizeof(b)<<endl; // 20*4
 cout<<sizeof(c)<<endl; // 6
 

    鏁扮粍a鐨勫ぇ灝忓湪瀹氫箟鏃舵湭鎸囧畾錛岀紪璇戞椂緇欏畠鍒嗛厤鐨勭┖闂存槸鎸夌収鍒濆鍖栫殑鍊肩‘瀹氱殑錛屼篃灝辨槸7銆俢鏄緇存暟緇勶紝鍗犵敤鐨勭┖闂村ぇ灝忔槸鍚勭淮鏁扮殑涔樼Н錛屼篃灝辨槸6銆傚彲浠ョ湅鍑猴紝鏁扮粍鐨勫ぇ灝忓氨鏄粬鍦ㄧ紪璇戞椂琚垎閰嶇殑絀洪棿錛屼篃灝辨槸鍚勭淮鏁扮殑涔樼Н*鏁扮粍鍏冪礌鐨勫ぇ灝忋?/font>

    緇撹錛氭暟緇勭殑澶у皬鏄悇緇存暟鐨勪箻縐?鏁扮粍鍏冪礌鐨勫ぇ灝忋?/font>

    榪欓噷鏈変竴涓櫡闃憋細(xì)

 int *d = new int[10];

 cout<<sizeof(d)<<endl; // 4

    d鏄垜浠父璇寸殑鍔ㄦ佹暟緇勶紝浣嗘槸浠栧疄璐ㄤ笂榪樻槸涓涓寚閽堬紝鎵浠izeof(d)鐨勫兼槸4銆?/font>

    鍐嶈冭檻涓嬮潰鐨勯棶棰橈細(xì)

 double* (*a)[3][6];
 
 cout<<sizeof(a)<<endl;  // 4
 cout<<sizeof(*a)<<endl;  // 72
 cout<<sizeof(**a)<<endl; // 24
 cout<<sizeof(***a)<<endl; // 4
 cout<<sizeof(****a)<<endl; // 8

    a鏄竴涓緢濂囨殑瀹氫箟錛屼粬琛ㄧず涓涓寚鍚?double*[3][6]綾誨瀷鏁扮粍鐨勬寚閽堛傛棦鐒舵槸鎸囬拡錛屾墍浠izeof(a)灝辨槸4銆?/font>

    鏃㈢劧a鏄墽琛宒ouble*[3][6]綾誨瀷鐨勬寚閽堬紝*a灝辮〃紺轟竴涓猟ouble*[3][6]鐨勫緇存暟緇勭被鍨嬶紝鍥犳sizeof(*a)=3*6*sizeof(double*)=72銆傚悓鏍風(fēng)殑錛?*a琛ㄧず涓涓猟ouble*[6]綾誨瀷鐨勬暟緇勶紝鎵浠izeof(**a)=6*sizeof(double*)=24銆?**a灝辮〃紺哄叾涓殑涓涓厓绱狅紝涔熷氨鏄痙ouble*浜?jiǎn)锛屾墍浠izeof(***a)=4銆傝嚦浜?***a錛屽氨鏄竴涓猟ouble浜?jiǎn)锛屾墍浠izeof(****a)=sizeof(double)=8銆?/font>


6銆佸悜鍑芥暟浼犻掓暟緇勭殑闂銆?/font>

    鑰冭檻涓嬮潰鐨勯棶棰橈細(xì)
#include <iostream>
using namespace std;

int Sum(int i[])
{
 int sumofi = 0;
 for (int j = 0; j < sizeof(i)/sizeof(int); j++) //瀹為檯涓婏紝sizeof(i) = 4
 {
  sumofi += i[j];
 }
 return sumofi;
}

int main()
{
 int allAges[6] = {21, 22, 22, 19, 34, 12};
 cout<<Sum(allAges)<<endl;
 system("pause");
 return 0;
}

    Sum鐨勬湰鎰忔槸鐢╯izeof寰楀埌鏁扮粍鐨勫ぇ灝忥紝鐒跺悗姹傚拰銆備絾鏄疄闄呬笂錛屼紶鍏ヨ嚜鍑芥暟Sum鐨勶紝鍙槸涓涓猧nt 綾誨瀷鐨勬寚閽堬紝鎵浠izeof(i)=4錛岃屼笉鏄?4錛屾墍浠ヤ細(xì)浜х敓閿欒鐨勭粨鏋溿傝В鍐寵繖涓棶棰樼殑鏂規(guī)硶浣挎槸鐢ㄦ寚閽堟垨鑰呭紩鐢ㄣ?/font>

    浣跨敤鎸囬拡鐨勬儏鍐碉細(xì)
int Sum(int (*i)[6])
{
 int sumofi = 0;
 for (int j = 0; j < sizeof(*i)/sizeof(int); j++) //sizeof(*i) = 24
 {
  sumofi += (*i)[j];
 }
 return sumofi;
}

int main()
{
 int allAges[] = {21, 22, 22, 19, 34, 12};
 cout<<Sum(&allAges)<<endl;
 system("pause");
 return 0;
}
    鍦ㄨ繖涓猄um閲岋紝i鏄竴涓寚鍚慽[6]綾誨瀷鐨勬寚閽堬紝娉ㄦ剰錛岃繖閲屼笉鑳界敤int Sum(int (*i)[])澹版槑鍑芥暟錛岃屾槸蹇呴』鎸囨槑瑕佷紶鍏ョ殑鏁扮粍鐨勫ぇ灝忥紝涓嶇劧sizeof(*i)鏃犳硶璁$畻銆備絾鏄湪榪欑鎯呭喌涓嬶紝鍐嶉氳繃sizeof鏉ヨ綆楁暟緇勫ぇ灝忓凡緇忔病鏈夋剰涔変簡(jiǎn)錛屽洜涓烘鏃跺ぇ灝忔槸鎸囧畾涓?鐨勩?br>浣跨敤寮曠敤鐨勬儏鍐靛拰鎸囬拡鐩鎬技錛?/font>

int Sum(int (&i)[6])
{
 int sumofi = 0;
 for (int j = 0; j < sizeof(i)/sizeof(int); j++)
 {
  sumofi += i[j];
 }
 return sumofi;
}

int main()
{
 int allAges[] = {21, 22, 22, 19, 34, 12};
 cout<<Sum(allAges)<<endl;
 system("pause");
 return 0;
}
    榪欑鎯呭喌涓媠izeof鐨勮綆楀悓鏍鋒棤鎰忎箟錛屾墍浠ョ敤鏁扮粍鍋氬弬鏁幫紝鑰屼笖闇瑕侀亶鍘嗙殑鏃跺欙紝鍑芥暟搴旇鏈変竴涓弬鏁版潵璇存槑鏁扮粍鐨勫ぇ灝忥紝鑰屾暟緇勭殑澶у皬鍦ㄦ暟緇勫畾涔夌殑浣滅敤鍩熷唴閫氳繃sizeof姹傚箋傚洜姝や笂闈㈢殑鍑芥暟姝g‘褰㈠紡搴旇鏄細(xì)
#include <iostream>
using namespace std;

int Sum(int *i, unsigned int n)
{
 int sumofi = 0;
 for (int j = 0; j < n; j++)
 {
  sumofi += i[j];
 }
 return sumofi;
}

int main()
{
 int allAges[] = {21, 22, 22, 19, 34, 12};
 cout<<Sum(i, sizeof(allAges)/sizeof(int))<<endl;
 system("pause");
 return 0;
}

7銆佸瓧絎︿覆鐨剆izeof鍜宻trlen

    鑰冭檻涓嬮潰鐨勯棶棰橈細(xì)

 char a[] = "abcdef";
 char b[20] = "abcdef";
 string s = "abcdef";

 cout<<strlen(a)<<endl;  // 6錛屽瓧絎︿覆闀垮害
 cout<<sizeof(a)<<endl;  // 7錛屽瓧絎︿覆瀹歸噺
 cout<<strlen(b)<<endl;  // 6錛屽瓧絎︿覆闀垮害
 cout<<strlen(b)<<endl;  // 20錛屽瓧絎︿覆瀹歸噺
 cout<<sizeof(s)<<endl;  // 12, 榪欓噷涓嶄唬琛ㄥ瓧絎︿覆鐨勯暱搴︼紝鑰屾槸string綾葷殑澶у皬
 cout<<strlen(s)<<endl;  // 閿欒錛乻涓嶆槸涓涓瓧絎︽寚閽堛?/font>

 a[1] = '\0';
 cout<<strlen(a)<<endl;  // 1
 cout<<sizeof(a)<<endl;  // 7錛宻izeof鏄亽瀹氱殑


    strlen鏄鎵句粠鎸囧畾鍦板潃寮濮嬶紝鍒板嚭鐜扮殑絎竴涓?涔嬮棿鐨勫瓧絎︿釜鏁幫紝浠栨槸鍦ㄨ繍琛岄樁孌墊墽琛岀殑錛岃宻izeof鏄緱鍒版暟鎹殑澶у皬錛屽湪榪欓噷鏄緱鍒板瓧絎︿覆鐨勫閲忋傛墍浠ュ鍚屼竴涓璞¤岃█錛宻izeof鐨勫兼槸鎭掑畾鐨勩俿tring鏄疌++綾誨瀷鐨勫瓧絎︿覆錛屼粬鏄竴涓被錛屾墍浠izeof(s)琛ㄧず鐨勫茍涓嶆槸瀛楃涓茬殑闀垮害錛岃屾槸綾籹tring鐨勫ぇ灝忋俿trlen(s)鏍規(guī)湰灝辨槸閿欒鐨勶紝鍥犱負(fù)strlen鐨勫弬鏁版槸涓涓瓧絎︽寚閽堬紝濡傛灉鎯崇敤strlen寰楀埌s瀛楃涓茬殑闀垮害錛屽簲璇ヤ嬌鐢╯izeof(s.c_str())錛屽洜涓簊tring鐨勬垚鍛樺嚱鏁癱_str()榪斿洖鐨勬槸瀛楃涓茬殑棣栧湴鍧銆傚疄闄呬笂錛宻tring綾繪彁渚涗簡(jiǎn)鑷繁鐨勬垚鍛樺嚱鏁版潵寰楀埌瀛楃涓茬殑瀹歸噺鍜岄暱搴︼紝鍒嗗埆鏄疌apacity()鍜孡ength()銆俿tring灝佽浜?jiǎn)甯哥敤浜?jiǎn)瀛楃涓叉搷浣滐紝鎵浠ュ湪C++寮鍙戣繃紼嬩腑錛屾渶濂戒嬌鐢╯tring浠f浛C綾誨瀷鐨勫瓧絎︿覆銆?/font>

鎴戞敞錛氬叧浜巗izeof(string)錛屽ソ鍍忎笉鍚岀殑瀹炵幇榪斿洖鐨勭粨鏋滀笉涓鏍鳳細(xì)
DevCPP錛?
VS2005錛?2


8銆佷粠union鐨剆izeof闂鐪媍pu鐨勫鐣?/font>

    鑰冭檻涓嬮潰闂錛氾紙榛樿瀵歸綈鏂瑰紡錛?/font>

 union u
 {
  double a;
  int b;
 };

 union u2
 {
  char a[13];
  int b;
 };

 union u3
 {
  char a[13];
  char b;
 };

 cout<<sizeof(u)<<endl;  // 8
 cout<<sizeof(u2)<<endl;  // 16
 cout<<sizeof(u3)<<endl;  // 13

    閮界煡閬搖nion鐨勫ぇ灝忓彇鍐充簬瀹冩墍鏈夌殑鎴愬憳涓紝鍗犵敤絀洪棿鏈澶х殑涓涓垚鍛樼殑澶у皬銆傛墍浠ュ浜巙鏉ヨ錛屽ぇ灝忓氨鏄渶澶х殑double綾誨瀷鎴愬憳a浜?jiǎn)锛屾墍浠izeof(u)=sizeof(double)=8銆備絾鏄浜巙2鍜寀3錛屾渶澶х殑絀洪棿閮芥槸char[13]綾誨瀷鐨勬暟緇勶紝涓轟粈涔坲3鐨勫ぇ灝忔槸13錛岃寀2鏄?6鍛紵鍏抽敭鍦ㄤ簬u2涓殑鎴愬憳int b銆傜敱浜巌nt綾誨瀷鎴愬憳鐨勫瓨鍦紝浣縰2鐨勫榻愭柟寮忓彉鎴?錛屼篃灝辨槸璇達(dá)紝u2鐨勫ぇ灝忓繀欏誨湪4鐨勫鐣屼笂錛屾墍浠ュ崰鐢ㄧ殑絀洪棿鍙樻垚浜?6錛堟渶鎺ヨ繎13鐨勫鐣岋級(jí)銆?/font>

    緇撹錛氬鍚堟暟鎹被鍨嬶紝濡倁nion錛宻truct錛宑lass鐨勫榻愭柟寮忎負(fù)鎴愬憳涓榻愭柟寮忔渶澶х殑鎴愬憳鐨勫榻愭柟寮忋?/font>

    欏轟究鎻愪竴涓婥PU瀵圭晫闂錛?2鐨凜++閲囩敤8浣嶅鐣屾潵鎻愰珮榪愯閫熷害錛屾墍浠ョ紪璇戝櫒浼?xì)灏介噺鎶婃暟鎹攽譁ㄥ畠鐨勫鐣屼笂浠ユ彁楂樺唴瀛樺懡涓巼銆傚鐣屾槸鍙互鏇存敼鐨勶紝浣跨敤#pragma pack(x)瀹忓彲浠ユ敼鍙樼紪璇戝櫒鐨勫鐣屾柟寮忥紝榛樿鏄?銆侰++鍥烘湁綾誨瀷鐨勫鐣屽彇緙栬瘧鍣ㄥ鐣屾柟寮忎笌鑷韓澶у皬涓緝?yōu)畯鐨勪竴涓備緥濡傦紝鎸囧畾緙栬瘧鍣ㄦ寜2瀵圭晫錛宨nt綾誨瀷鐨勫ぇ灝忔槸4錛屽垯int鐨勫鐣屼負(fù)2鍜?涓緝?yōu)畯鐨?銆傚湪榛樿鐨勫鐣屾柟寮忎笅錛屽洜涓哄嚑涔庢墍鏈夌殑鏁版嵁綾誨瀷閮戒笉澶т簬榛樿鐨勫鐣屾柟寮?錛堥櫎浜?jiǎn)long double錛夛紝鎵浠ユ墍鏈夌殑鍥烘湁綾誨瀷鐨勫鐣屾柟寮忓彲浠ヨ涓哄氨鏄被鍨嬭嚜韜殑澶у皬銆傛洿鏀逛竴涓嬩笂闈㈢殑紼嬪簭錛?/font>

 #pragma pack(2)
 union u2
 {
  char a[13];
  int b;
 };

 union u3
 {
  char a[13];
  char b;
 };
 #pragma pack(8)

 cout<<sizeof(u2)<<endl;  // 14
 cout<<sizeof(u3)<<endl;  // 13

    鐢變簬鎵嬪姩鏇存敼瀵圭晫鏂瑰紡涓?錛屾墍浠nt鐨勫鐣屼篃鍙樻垚浜?錛寀2鐨勫鐣屽彇鎴愬憳涓渶澶х殑瀵圭晫錛屼篃鏄?浜?jiǎn)锛屾墍浠ユ鏃秙izeof(u2)=14銆?/font>

    緇撹錛欳++鍥烘湁綾誨瀷鐨勫鐣屽彇緙栬瘧鍣ㄥ鐣屾柟寮忎笌鑷韓澶у皬涓緝?yōu)畯鐨勪竴涓?/font>


9銆乻truct鐨剆izeof闂

    鍥犱負(fù)瀵歸綈闂浣跨粨鏋勪綋鐨剆izeof鍙樺緱姣旇緝澶嶆潅錛岀湅涓嬮潰鐨勪緥瀛愶細(xì)(榛樿瀵歸綈鏂瑰紡涓?

 struct s1
 {
  char a;
  double b;
  int c;
  char d; 
 };

 struct s2
 {
  char a;
  char b;
  int c;
  double d;
 };

 cout<<sizeof(s1)<<endl; // 24
 cout<<sizeof(s2)<<endl; // 16

    鍚屾牱鏄袱涓猚har綾誨瀷錛屼竴涓猧nt綾誨瀷錛屼竴涓猟ouble綾誨瀷錛屼絾鏄洜涓哄鐣岄棶棰橈紝瀵艱嚧浠栦滑鐨勫ぇ灝忎笉鍚屻傝綆楃粨鏋勪綋澶у皬鍙互閲囩敤鍏冪礌鎽嗘斁娉曪紝鎴戜婦渚嬪瓙璇存槑涓涓嬶細(xì)棣栧厛錛孋PU鍒ゆ柇緇撴瀯浣撶殑瀵圭晫錛屾牴鎹笂涓鑺傜殑緇撹錛宻1鍜宻2鐨勫鐣岄兘鍙栨渶澶х殑鍏冪礌綾誨瀷錛屼篃灝辨槸double綾誨瀷鐨勫鐣?銆傜劧鍚庡紑濮嬫憜鏀炬瘡涓厓绱犮?br>    瀵逛簬s1錛岄鍏堟妸a鏀懼埌8鐨勫鐣岋紝鍋囧畾鏄?錛屾鏃朵笅涓涓┖闂茬殑鍦板潃鏄?錛屼絾鏄笅涓涓厓绱燿鏄痙ouble綾誨瀷錛岃鏀懼埌8鐨勫鐣屼笂錛岀1鏈鎺ヨ繎鐨勫湴鍧鏄?浜?jiǎn)锛屾墍浠琚斁鍦ㄤ簡(jiǎn)8錛屾鏃朵笅涓涓┖闂插湴鍧鍙樻垚浜?6錛屼笅涓涓厓绱燾鐨勫鐣屾槸4錛?6鍙互婊¤凍錛屾墍浠鏀懼湪浜?6錛屾鏃朵笅涓涓┖闂插湴鍧鍙樻垚浜?0錛屼笅涓涓厓绱燿闇瑕佸鐣?錛屼篃姝eソ钀藉湪瀵圭晫涓婏紝鎵浠鏀懼湪浜?0錛岀粨鏋勪綋鍦ㄥ湴鍧21澶勭粨鏉熴傜敱浜巗1鐨勫ぇ灝忛渶瑕佹槸8鐨勫嶆暟錛屾墍浠?1-23鐨勭┖闂磋淇濈暀錛宻1鐨勫ぇ灝忓彉鎴愪簡(jiǎn)24銆?br>    瀵逛簬s2錛岄鍏堟妸a鏀懼埌8鐨勫鐣岋紝鍋囧畾鏄?錛屾鏃朵笅涓涓┖闂插湴鍧鏄?錛屼笅涓涓厓绱犵殑瀵圭晫涔熸槸1錛屾墍浠鎽嗘斁鍦?錛屼笅涓涓┖闂插湴鍧鍙樻垚浜?錛涗笅涓涓厓绱燾鐨勫鐣屾槸4錛屾墍浠ュ彇紱?鏈榪戠殑鍦板潃4鎽嗘斁c錛屼笅涓涓┖闂插湴鍧鍙樻垚浜?錛屼笅涓涓厓绱燿鐨勫鐣屾槸8錛屾墍浠鎽嗘斁鍦?錛屾墍鏈夊厓绱犳憜鏀懼畬姣曪紝緇撴瀯浣撳湪15澶勭粨鏉燂紝鍗犵敤鎬葷┖闂翠負(fù)16錛屾濂芥槸8鐨勫嶆暟銆?/font>

    榪欓噷鏈変釜闄烽槺錛屽浜庣粨鏋勪綋涓殑緇撴瀯浣撴垚鍛橈紝涓嶈璁や負(fù)瀹冪殑瀵歸綈鏂瑰紡灝辨槸浠栫殑澶у皬錛岀湅涓嬮潰鐨勪緥瀛愶細(xì)

 struct s1
 {
  char a[8];
 };

 struct s2
 {
  double d;
 };

 struct s3
 {
  s1 s;
  char a;
 };

 struct s4
 {
  s2 s;
  char a; 
 };

 cout<<sizeof(s1)<<endl; // 8
 cout<<sizeof(s2)<<endl; // 8
 cout<<sizeof(s3)<<endl; // 9
 cout<<sizeof(s4)<<endl; // 16;

    s1鍜宻2澶у皬铏界劧閮芥槸8錛屼絾鏄痵1鐨勫榻愭柟寮忔槸1錛宻2鏄?錛坉ouble錛夛紝鎵浠ュ湪s3鍜宻4涓墠鏈夎繖鏍風(fēng)殑宸紓銆?/font>

    鎵浠ワ紝鍦ㄨ嚜宸卞畾涔夌粨鏋勪綋鐨勬椂鍊欙紝濡傛灉絀洪棿绱у紶鐨勮瘽錛屾渶濂借冭檻瀵歸綈鍥犵礌鏉ユ帓鍒楃粨鏋勪綋閲岀殑鍏冪礌銆?/font>

10銆佷笉瑕佽double騫叉壈浣犵殑浣嶅煙

    鍦ㄧ粨鏋勪綋鍜岀被涓紝鍙互浣跨敤浣嶅煙鏉ヨ瀹氭煇涓垚鍛樻墍鑳藉崰鐢ㄧ殑絀洪棿錛屾墍浠ヤ嬌鐢ㄤ綅鍩熻兘鍦ㄤ竴瀹氱▼搴︿笂鑺傜渷緇撴瀯浣撳崰鐢ㄧ殑絀洪棿銆備笉榪囪冭檻涓嬮潰鐨勪唬鐮侊細(xì)

 struct s1
 {
  int i: 8;
  int j: 4;
  double b;
  int a:3;
 };

 struct s2
 {
  int i;
  int j;
  double b;
  int a;
 };

 struct s3
 {
  int i;
  int j;
  int a;
  double b;
 };

 struct s4
 {
  int i: 8;
  int j: 4;
  int a:3;
  double b;
 };

 cout<<sizeof(s1)<<endl;  // 24
 cout<<sizeof(s2)<<endl;  // 24
 cout<<sizeof(s3)<<endl;  // 24
 cout<<sizeof(s4)<<endl;  // 16

    鍙互鐪嬪埌錛屾湁double瀛樺湪浼?xì)骞叉秹鍒颁綅鍩熷Q坰izeof鐨勭畻娉曞弬鑰冧笂涓鑺傦級(jí)錛屾墍浠ヤ嬌鐢ㄤ綅鍩熺殑鐨勬椂鍊欙紝鏈濂芥妸float綾誨瀷鍜宒ouble綾誨瀷鏀懼湪紼嬪簭鐨勫紑濮嬫垨鑰呮渶鍚庛?/font>

    絎竴嬈″啓涓滆タ錛屽彂鐜拌嚜宸辯殑琛ㄨ揪鑳藉姏澶樊浜?jiǎn)锛岀煡閬撶殑涓滆タ璁蹭笉鍑烘潵锛岃鍑烘潵鐨勪笢瑗垮埆錆h涔熺湅涓嶆噦錛屽懙鍛點(diǎn)傚彟澶栵紝C99鏍囧噯鐨剆izeof宸茬粡鍙互宸ヤ綔鍦ㄨ繍琛屾椂浜?jiǎn)锛屾墦绠楁渶榪戞壘涓敮鎸丆99鐨勭紪璇戝櫒鐮旂┒涓涓嬨?/font>




]]>
My Palindrome Algorithmhttp://m.shnenglu.com/JonsenElizee/archive/2010/07/21/120976.htmlJonsenElizeeJonsenElizeeWed, 21 Jul 2010 09:19:00 GMThttp://m.shnenglu.com/JonsenElizee/archive/2010/07/21/120976.htmlhttp://m.shnenglu.com/JonsenElizee/comments/120976.htmlhttp://m.shnenglu.com/JonsenElizee/archive/2010/07/21/120976.html#Feedback1http://m.shnenglu.com/JonsenElizee/comments/commentRss/120976.htmlhttp://m.shnenglu.com/JonsenElizee/services/trackbacks/120976.htmlIt only can make a judge on single-byte character string.
Can anybody write a palindrome algorithm for Chinese character string? thank you at first.




]]>
Funny printf ++http://m.shnenglu.com/JonsenElizee/archive/2010/07/21/120965.htmlJonsenElizeeJonsenElizeeWed, 21 Jul 2010 07:19:00 GMThttp://m.shnenglu.com/JonsenElizee/archive/2010/07/21/120965.htmlhttp://m.shnenglu.com/JonsenElizee/comments/120965.htmlhttp://m.shnenglu.com/JonsenElizee/archive/2010/07/21/120965.html#Feedback1http://m.shnenglu.com/JonsenElizee/comments/commentRss/120965.htmlhttp://m.shnenglu.com/JonsenElizee/services/trackbacks/120965.htmlThe following codes are tested on VS2005.
For reply from role0523, please pay attention to compiler version and so on.
Thanks for any reply from anyone.


  




]]>
Potential Hazards in C/C++http://m.shnenglu.com/JonsenElizee/archive/2010/07/20/120880.htmlJonsenElizeeJonsenElizeeTue, 20 Jul 2010 07:44:00 GMThttp://m.shnenglu.com/JonsenElizee/archive/2010/07/20/120880.htmlHere is a image for all potential hazards.
Though, you would say one or more of them are not dangerous, please pay attention to them during your coding work.



]]>
国产精品久久久久久久久软件| 国内精品久久久久影院优 | 狠狠色丁香久久婷婷综合蜜芽五月| 久久久久亚洲?V成人无码| 免费一级做a爰片久久毛片潮| 久久99精品久久久大学生| 精品久久久久久综合日本| 久久精品国产只有精品66| 亚洲AV无码久久精品狠狠爱浪潮 | 久久久久人妻一区二区三区 | 久久久久九九精品影院| 7777精品久久久大香线蕉| 91麻精品国产91久久久久| 久久久精品人妻一区二区三区蜜桃| 国产成人久久激情91| 亚洲欧洲久久av| 久久久久99精品成人片牛牛影视| 久久久久久夜精品精品免费啦| 亚洲国产天堂久久久久久| 久久精品中文字幕久久| 日韩乱码人妻无码中文字幕久久| 午夜精品久久影院蜜桃| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 久久久久se色偷偷亚洲精品av| 国产精品99久久精品爆乳| 亚洲综合伊人久久综合| 色欲综合久久躁天天躁| 久久国产精品偷99| 91精品国产高清久久久久久91| 97久久超碰成人精品网站| 97精品依人久久久大香线蕉97| 狠狠色丁香婷婷久久综合五月| 合区精品久久久中文字幕一区| 久久人妻少妇嫩草AV无码蜜桃| 久久精品国产亚洲AV不卡| 精品免费久久久久国产一区 | 久久综合久久综合亚洲| 欧美亚洲日本久久精品| 欧美精品丝袜久久久中文字幕 | 久久久久久国产精品无码超碰| 热99RE久久精品这里都是精品免费 |