青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

程序讓生活更美好

半畝方塘 天光云影

  C++博客 ::  :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
  55 隨筆 :: 4 文章 :: 202 評(píng)論 :: 0 Trackbacks

struct union 的區(qū)別

在編程的時(shí)候,經(jīng)常會(huì)遇到使用一個(gè)變量處理多種數(shù)據(jù)的情況,在這種情況下,如果我們不考慮使用類(lèi),那么就可以是struct(結(jié)構(gòu))和union(聯(lián)合)來(lái)進(jìn)行處理。那么,這兩種結(jié)構(gòu)之間到底有什么不同呢?

可以先看下面的一個(gè)小例子。

 1 #include  < iostream >
 2 using   namespace  std;
 3
 4 union U1 {
 5      char  c;
 6      int  i;
 7      double  d;
 8     }
;
 9 union U2 {
10      char  c;
11      // int i;
12      // double d;
13     }
;
14
15 union U3 {
16      char  c;
17      int  i;
18      // double d;
19     }
;
20
21 struct  S1 {
22      char  c;
23      int  i;
24      double  d;
25     }
;
26
27 struct  S2 {
28      char  c;
29      int  i;
30      // double d;
31     }
;
32
33 int  main() {
34     cout << " U1's size = " << sizeof (U1) << endl;
35     cout << " U2's size = " << sizeof (U2) << endl;
36     cout << " U3's size = " << sizeof (U3) << endl;
37     cout << endl;
38     cout << " -------------------------------- " << endl;
39     cout << " S1's size = " << sizeof (S1) << endl;
40     cout << " 其中 " << sizeof ( char ) << " + " << sizeof ( int ) << " + " << sizeof ( double ) << " = " << sizeof ( char ) + sizeof ( int ) + sizeof ( double ) << endl;
41     cout << " ---------- " << endl;
42     cout << " S2's size = " << sizeof (S2) << endl;
43     cout << " 其中 " << sizeof ( char ) << " + " << sizeof ( int ) << " = " << sizeof ( char ) + sizeof ( int ) << endl;
44     cout << " -------------------------------- " << endl;
45     S1 s;
46     s.c = ' A ' ;
47         cout << " 1 s.c =  " << s.c << endl;
48     s.d = 23.2132 ;
49         cout << " 1 s.d =  " << s.d << endl;
50
51         cout << " 2 s.c =  " << s.c << endl;
52         cout << " 2 s.d =  " << s.d << endl;
53         cout << " -----------------------  " << endl;
54     U1 u;
55         u.c = ' A ' ;
56         cout << " 1 u.c =  " << u.c << endl;
57     
58         u.i = 23322 ;
59         cout << " 1 u.i =  " << u.i << endl;
60
61         u.d = 23.2132 ;
62         cout << " 1 u.d =  " << u.d << endl;
63         cout << " 2 u.c =  " << u.c << endl;
64         cout << " 2 u.i =  " << u.i << endl;
65      return   0 ;
66 }

67

輸出結(jié)果為:

U1's size =8

U2's size =1

U3's size =4

 

--------------------------------

S1's size =16

其中 1+4+8=13

----------

S2's size =8

其中 1+4=5

--------------------------------

1 s.c = A

1 s.d = 23.2132

2 s.c = A

2 s.d = 23.2132

-----------------------

1 u.c = A

1 u.i = 23322

1 u.d = 23.2132

2 u.c =

2 u.i = 1181975000

解釋?zhuān)?/span>

struct 類(lèi)型的內(nèi)存分配是結(jié)合內(nèi)部的所有變量大小和相關(guān)的,但不是簡(jiǎn)單的相加,從上面的例子就可以看出來(lái), struct 類(lèi)型的分配的內(nèi)存大小是應(yīng)該內(nèi)部最大數(shù)據(jù)類(lèi)型的整數(shù)倍,不足一倍的部分會(huì)自動(dòng)補(bǔ)全成一倍大小,應(yīng)該是編譯器為了數(shù)據(jù)整齊,處理速度會(huì)快些把。 union 類(lèi)型的內(nèi)存分配,只是和聯(lián)合體內(nèi)的最大的一個(gè)數(shù)據(jù)類(lèi)型的大小相關(guān),而且 union 內(nèi)的所有數(shù)據(jù)都在一個(gè)單獨(dú)的內(nèi)存空間里面。這些就是上面程序出現(xiàn)這樣的結(jié)果的原因。


   所以,
u.c 的值是 A ,當(dāng)給聯(lián)合體內(nèi)的其他變量賦值之后, u.c 的值就是一個(gè)無(wú)用的信息。同樣, u.i 的值最初是 23322 ,當(dāng)給 u.d 賦值 23.2132 之后, u.i 的值就變得無(wú)用了。


posted on 2006-03-20 17:02 北風(fēng)之神007 閱讀(10017) 評(píng)論(5)  編輯 收藏 引用 所屬分類(lèi): c/c++

評(píng)論

# re: struct 與union的區(qū)別 2007-09-07 10:47 路人甲
謝謝~~ 學(xué)到了不少

不過(guò)感覺(jué)struct類(lèi)型的分配的內(nèi)存大小應(yīng)該是,大于等于內(nèi)部所有變量大小的和的一個(gè)2的密指數(shù)。
  回復(fù)  更多評(píng)論
  

# re: struct 與union的區(qū)別 2008-01-26 11:42 路人已
真的很感謝,終于知道了union的優(yōu)點(diǎn)了*^_^*  回復(fù)  更多評(píng)論
  

# re: struct 與union的區(qū)別 [未登錄](méi) 2008-11-04 15:23 tom
memory alignment@路人甲
  回復(fù)  更多評(píng)論
  

# re: struct 與union的區(qū)別 2010-09-21 09:08 愛(ài)的隧道
@路人甲
應(yīng)該是不小于所有變量的和且最接近之的4的倍數(shù)。  回復(fù)  更多評(píng)論
  

# re: struct 與union的區(qū)別 [未登錄](méi) 2011-09-23 15:02 aaaa
最后為什么2 u.i = 1181975000?  回復(fù)  更多評(píng)論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩视频一区二区三区在线播放| 亚洲欧美日韩在线不卡| 国产精品99久久久久久有的能看| 猛干欧美女孩| 久久手机精品视频| 久久久夜精品| 欧美激情aⅴ一区二区三区 | 极品日韩久久| 亚洲高清免费在线| 亚洲精品社区| 亚洲在线视频网站| 久久精品国产第一区二区三区最新章节 | 性刺激综合网| 午夜影视日本亚洲欧洲精品| 亚洲欧美日韩精品一区二区| 久久夜精品va视频免费观看| 欧美区在线观看| 国产网站欧美日韩免费精品在线观看| 蜜臀av一级做a爰片久久| 欧美日韩久久精品| 国产一区二区电影在线观看 | 久久亚洲综合色一区二区三区| 久久精品首页| 亚洲欧洲一区二区天堂久久| 亚洲日本成人女熟在线观看| 亚洲一区精品电影| 老司机凹凸av亚洲导航| 国产精品毛片大码女人| 亚洲高清不卡一区| 欧美一区二区三区四区在线观看地址 | 亚洲精品网址在线观看| 亚洲天堂久久| 亚洲第一在线综合网站| 午夜久久美女| 欧美日韩综合在线免费观看| 一区二区三区在线视频免费观看| 亚洲日本久久| 六月婷婷一区| 亚洲精品在线观| 麻豆av福利av久久av| 国产视频在线一区二区| 中文精品99久久国产香蕉| 欧美a级片网站| 正在播放亚洲一区| 久久久精品动漫| 一本色道久久综合狠狠躁的推荐| 亚洲性图久久| 欧美久久久久久久| 亚洲国产一区在线观看| 久久久精品国产99久久精品芒果| av成人老司机| 欧美日韩国产成人精品| 亚洲欧洲一区| 欧美国产大片| 久久综合九色综合欧美就去吻| 欧美精品久久久久久久| 激情文学一区| 免费观看日韩av| 欧美在线免费播放| 国产精品免费观看在线| 欧美一区2区视频在线观看| 亚洲视频在线一区观看| 国产精品国产三级国产aⅴ无密码| 亚洲破处大片| 久久久久久91香蕉国产| 性色av一区二区三区红粉影视| 国产精品国产三级国产专播精品人| 亚洲伦理中文字幕| 日韩亚洲视频| 国产精品进线69影院| 亚洲新中文字幕| 亚洲欧美日本精品| 一区久久精品| 欧美激情欧美激情在线五月| 久久视频免费观看| 黄色国产精品| 欧美激情综合色| 欧美日韩国产欧美日美国产精品| 日韩视频精品在线观看| aa级大片欧美三级| 国产日韩欧美精品一区| 免费成人高清| 欧美人体xx| 欧美在线网站| 久久亚洲高清| 亚洲一区区二区| 亚洲综合社区| 亚洲日本中文| 亚洲一区亚洲| 亚洲黄色av| 亚洲一区二区日本| 亚洲国产精品福利| 中国女人久久久| 国产精品热久久久久夜色精品三区| 一片黄亚洲嫩模| 欧美亚洲一区在线| 日韩网站在线观看| 亚洲欧美精品一区| 精品成人国产| 亚洲视频图片小说| 禁断一区二区三区在线| 99精品国产在热久久| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲国产美女精品久久久久∴| 欧美视频1区| 欧美国产日韩精品免费观看| 国产一区二区三区免费在线观看 | 一区二区成人精品| 黄网动漫久久久| 午夜免费电影一区在线观看| 国产一区999| 亚洲国内精品在线| 狠狠色丁香婷婷综合影院| 亚洲色图自拍| 日韩香蕉视频| 美腿丝袜亚洲色图| 久久全球大尺度高清视频| 欧美视频在线观看 亚洲欧| 蜜臀av在线播放一区二区三区| 欧美偷拍一区二区| 亚洲国产毛片完整版| 玉米视频成人免费看| 99国产精品99久久久久久粉嫩| 国产精品丝袜白浆摸在线| 亚洲精品在线免费| 1024日韩| 久久久久99| 久久久久久亚洲精品杨幂换脸| 欧美精品日韩一区| 欧美激情在线| 亚洲欧洲三级电影| 欧美成人一二三| 欧美激情成人在线视频| 在线免费高清一区二区三区| 久久精品国产精品| 久久亚洲影音av资源网| 极品少妇一区二区三区精品视频 | 99视频超级精品| 亚洲免费观看高清完整版在线观看熊 | 久久久久久久91| 国产精品日韩在线| 亚洲一区二区在线播放| 亚洲欧美美女| 国产精品日韩一区| 午夜在线精品| 快she精品国产999| 亚洲国产精品成人久久综合一区| 午夜精品影院| 美女精品一区| 99re热这里只有精品免费视频| 久久夜色精品国产欧美乱极品| 久久精品99久久香蕉国产色戒| 国产精品女人久久久久久| 亚洲午夜黄色| 久久久水蜜桃| 亚洲精品中文字幕在线| 欧美日韩另类字幕中文| 亚洲男人第一网站| 美女在线一区二区| 一本色道久久99精品综合| 国产精品国产三级欧美二区| 性欧美video另类hd性玩具| 理论片一区二区在线| 亚洲精品一二三| 国产精品爽黄69| 麻豆精品传媒视频| 亚洲欧美国产不卡| 国产一区二区三区精品久久久| 小辣椒精品导航| 欧美激情欧美狂野欧美精品| 亚洲一区国产精品| 激情五月***国产精品| 欧美日韩精品一区二区| 性色一区二区| 亚洲精品亚洲人成人网| 久久国产精品久久国产精品| 亚洲精品韩国| 国产一区二区丝袜高跟鞋图片| 久久久久久999| 中文精品视频| 亚洲第一搞黄网站| 欧美与黑人午夜性猛交久久久| 在线电影一区| 国产精品欧美在线| 欧美国产精品劲爆| 久久精品网址| 亚洲一二三级电影| 亚洲欧洲精品成人久久奇米网| 午夜精品久久久久久久久久久| 国产精品一区二区在线| 欧美精品亚洲| 你懂的亚洲视频| 久久精品亚洲| 午夜精品久久久久久久99水蜜桃 | 国产一区日韩二区欧美三区| 欧美日本中文| 麻豆视频一区二区| 欧美在线亚洲在线| 亚洲自拍偷拍福利| 夜夜精品视频一区二区|