奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

C語言位域的使用與注意事項解析

時間:2024-07-22 00:23:42 C語言 我要投稿
  • 相關推薦

C語言位域的使用與注意事項解析

  C語言的位域是什么呢?該怎么使用呢?下面一起來看看C語言中位域的使用與注意事項解析吧!或許你就了解了。
  位域的定義
  有些信息在存儲時,并不需要占用一個完整的字節, 而只需占幾個或一個二進制位。例如在存放一個開關量時,只有0和1 兩種狀態, 用一位二進位即可。為了節省存儲空間,并使處理簡便,C語言又提供了一種數據結構,稱為“位域”或“位段”。所謂“位域”是把一個字節中的二進位劃分為幾個不同的區域,并說明每個區域的位數。每個域有一個域名,允許在程序中按域名進行操作。 這樣就可以把幾 個不同的對象用一個字節的二進制位域來表示。
  位域的定義和位域變量的說明位域定義與結構定義相仿,其形式為:
  ?
  struct 位域結構名
  { 位域列表 };
  eg:struct weiyu {
  int a:2;
  int b:5;
  int  :5;//此五位為空域,不能使用
  int c:3;
  }
  位域雖然簡單好用,但使用時需要注意:
  1) 如果相鄰位域字段的類型相同,且其位寬之和小于類型的sizeof大小,則后面的字段將緊鄰前一個字段存儲,直到不能容納為止;2) 如果相鄰位域字段的類型相同,但其位寬之和大于類型的sizeof大小,則后面的字段將從新的存儲單元開始,其偏移量為其類型大小的整數倍;3) 整個結構體的總大小為最寬基本類型成員大小的整數倍。
  4) 如果相鄰的位域字段的類型不同,則各編譯器的具體實現有差異,VC6采取不壓縮方式,Dev-C++采取壓縮方式;5) 如果位域字段之間穿插著非位域字段,則不進行壓縮;(不針對所有的編譯器)注意:4 ,5跟編譯器有較大的關系,使用時要慎重,盡量避免。
  ?
  #include "stdio.h"
  void main(int argn ,char *argv)
  {
  struct   test {
  unsigned a:10;
  unsigned b:10;
  unsigned c:6;
  unsigned :2;//this two bytes can't use
  unsigned d:4;
  }data,*pData;
  data.a=0x177;
  data.b=0x111;
  data.c=0x7;
  data.d=0x8;
  pData=&data;
  printf("data.a=%x data.b= %x data.c=%x data.d=%xn",pData->a,pData->b,pData->c,pData->d);//位域可以使用指針printf("sizeof(data)=%dn",sizeof(data));  //4 bytes ,最常用的情況struct testLen{char a:5;char b:5;
  char c:5;
  char d:5;
  char e:5;
  }len;
  printf("sizeof(len)=%dn",sizeof(len));   //5bytes 規則2struct testLen1{char a:5;char b:2;
  char d:3;
  char c:2;
  char e:7;
  }len1;
  printf("sizeof(len1) =%dn",sizeof(len1));  //3bytes 規則1struct testLen2{char a:2;char :3;
  char b:7;
  long d:20; //4bytes
  char e:4;
  }len2;
  printf("sizeof(len2)=%dn",sizeof(len2)); //12 規則3,4,5,總長為4的整數倍,2+3 占1byte,b占1bye 由于與long對其,2+3+7 占4字節,后面 d 與 e進行了優化 占一個4字節struct testLen3{char a:2;char :3;
  char b:7;
  long d:30;
  char e:4;
  }len3;
  printf("sizeof(len3)=%dn",sizeof(len3));//12 規則3,4,5,總長為4的整數倍,2+3 占1byte,b占1bye 由于與long對其,2+3+7 占4字節,后面 d占一個4字節,為了保證與long對其e獨占一個4字節}
 

【C語言位域的使用與注意事項解析】相關文章:

C語言位運算12-04

C語言的位運算12-03

C語言for循環的使用03-19

C語言if語句的使用03-30

C語言數組實例解析03-28

C 語言中宏的使用12-03

C語言的注意事項09-22

C語言位操作是什么?12-04

C語言函數返回值解析11-24

主站蜘蛛池模板: 政和县| 监利县| 景泰县| 都江堰市| 逊克县| 普宁市| 浦县| 清远市| 株洲县| 比如县| 筠连县| 桃江县| 巢湖市| 原平市| 定兴县| 康马县| 炉霍县| 卫辉市| 林口县| 秀山| 玛沁县| 澄迈县| 安阳市| 姜堰市| 湘西| 华坪县| 信丰县| 武强县| 祥云县| 颍上县| 特克斯县| 绥中县| 阿瓦提县| 井研县| 南丰县| 芷江| 阳江市| 长春市| 喜德县| 海安县| 楚雄市|