c語言結構體中的冒號的用法


結構體中常見的冒號的用法是表示位域。

有些信息在存儲時,並不需要占用一個完整的字節,而只需占幾個或一個二進制位。例如在存放一個開關量時,只有0和1兩種狀態,用一位二進位即可。為了節省存儲空間,並使處理簡便,C語言又提供了一種數據結構,稱為“位域”或“位段”。所謂“位域”是把一個字節中的二進位划分為幾個不同的區域,並說明每個區域的位數。每個域有一個域名,允許在程序中按域名進行操作。這樣就可以把幾個不同的對象用一個字節的二進制位域來表示。

 

位域的定義和位域變量的說明位域定義與結構定義相仿,其形式為: 

    struct   位域結構名     
         {   位域列表   };   
    
    其中位域列表的形式為:   類型說明符   位域名:位域長度。例如:
struct   bs   
{   
   int   a:8;   
   int   b:2;   
   int   c:6;   
};

說明data為bs變量,共占兩個字節。其中位域a占8位,位域b占2位,位域c占6位。

 

位域的使用:位域的使用和結構成員的使用相同,其一般形式為:   位域變量名·位域名   位域允許用各種格式輸出。

main() {   
   struct   bs   
   {   
    unsigned   a:1;   
    unsigned   b:3;   
    unsigned   c:4;   
   }   bit,*pbit;   
   bit.a=1;   
   bit.b=7;   
   bit.c=15;   
   printf("%d,%d,%d/n",bit.a,bit.b,bit.c);   
   pbit=&bit;   
   pbit->a=0;   
   pbit->b&=3;   
   pbit->c|=15;   
   printf("%d,%d,%d/n",pbit->a,pbit->b,pbit->c);   
  }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM