機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
結(jié)構(gòu)與聯(lián)合
結(jié)構(gòu)與聯(lián)合
 更新時(shí)間:2008-8-19 14:07:17  點(diǎn)擊數(shù):572
【字體: 字體顏色
一、聯(lián)合的定義
聯(lián)合(union) 
定義一個(gè)聯(lián)合類型的一般形式為: 
union 聯(lián)合名 

成員表 
};
成員表中含有若干成員,成員的一般形式為: 類型說(shuō)明符 成員名 成員名的命名應(yīng)符合標(biāo)識(shí)符的規(guī)定。
例如: 
union perdata
{
   int class;
   char office[10];
};
  定義了一個(gè)名為perdata的聯(lián)合類型,它含有兩個(gè)成員,一個(gè)為整型,成員名為class;另一個(gè)為字符數(shù)組,數(shù)組名為office。聯(lián)合定義之后,即可進(jìn)行聯(lián)合變量說(shuō)明,被說(shuō)明為perdata類型的變量,可以存放整型量class或存放字符數(shù)組office。

聯(lián)合說(shuō)明和聯(lián)合變量定義 
聯(lián)合也是一種新的數(shù)據(jù)類型, 它是一種特殊形式的變量。 
聯(lián)合說(shuō)明和聯(lián)合變量定義與結(jié)構(gòu)十分相似。其形式為: 
 union 聯(lián)合名{ 
      數(shù)據(jù)類型 成員名; 
      數(shù)據(jù)類型 成員名; 
      ... 
 } 聯(lián)合變量名; 
聯(lián)合表示幾個(gè)變量公用一個(gè)內(nèi)存位置, 在不同的時(shí)間保存不同的數(shù)據(jù)類型 和不同長(zhǎng)度的變量。 
下例表示說(shuō)明一個(gè)聯(lián)合a_bc: 
 union a_bc{ 
      int i; 
      char mm; 
 }; 
再用已說(shuō)明的聯(lián)合可定義聯(lián)合變量。 
例如用上面說(shuō)明的聯(lián)合定義一個(gè)名為lgc的聯(lián)合變量, 可寫成: 
  union a_bc lgc; 
在聯(lián)合變量lgc中, 整型量i和字符mm公用同一內(nèi)存位置。 
當(dāng)一個(gè)聯(lián)合被說(shuō)明時(shí), 編譯程序自動(dòng)地產(chǎn)生一個(gè)變量, 其長(zhǎng)度為聯(lián)合中最大的變量長(zhǎng)度。 
聯(lián)合訪問(wèn)其成員的方法與結(jié)構(gòu)相同。同樣聯(lián)合變量也可以定義成數(shù)組或指針,但定義為指針時(shí),也要用"->"符號(hào), 此時(shí)聯(lián)合訪問(wèn)成員可表示成: 
 聯(lián)合名->成員名 
另外, 聯(lián)合既可以出現(xiàn)在結(jié)構(gòu)內(nèi), 它的成員也可以是結(jié)構(gòu)。 
例如: 
 struct{ 
      int age; 
      char *addr; 
      union{ 
           int i; 
           char *ch; 
      }x; 
 }y[10]; 
若要訪問(wèn)結(jié)構(gòu)變量y[1]中聯(lián)合x的成員i, 可以寫成: 
  y[1].x.i; 
若要訪問(wèn)結(jié)構(gòu)變量y[2]中聯(lián)合x的字符串指針ch的第一個(gè)字符可寫成: 
  *y[2].x.ch; 
若寫成"y[2].x.*ch;"是錯(cuò)誤的。 
<
  • 上一篇: 可編程模擬器件原理與開發(fā)
  • 下一篇: 與蜂共舞—ZigBee技術(shù)一瞥
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1