内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

內(nèi)存對齊模式與結(jié)構(gòu)體

1、結(jié)構(gòu)體是一種新的數(shù)據(jù)類型,對C語言的數(shù)據(jù)類型進行了極大的擴充。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,泰山企業(yè)網(wǎng)站建設,泰山品牌網(wǎng)站建設,網(wǎng)站定制,泰山網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,泰山網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

  struct STU{

   int age;

   char name[15];

  };

  struct STU  a;   //結(jié)構(gòu)體實例

  struct STU  *b;  //結(jié)構(gòu)體指針

  (1).可以通過a.age對其進行取成員的操作,b->age也可以進行結(jié)構(gòu)體的操作。

  b->age存在問題,必須有一個結(jié)構(gòu)體空間已經(jīng)讓b指向,b的值為此結(jié)構(gòu)體空間的地址。

  (2).a.name = "lilei"; false,因為name是數(shù)組名稱,指針常量不能賦值,解決方案:strcpy()函數(shù);

  (3).字符串直接進行比較的話,是其地址的比較,沒有什么意義,用strcmp()函數(shù)進行比較,就是ASCII碼的比較了。

2、內(nèi)存對齊模式:

  操作系統(tǒng)對于內(nèi)存空間的分配,遵循如下原則:總是從2^n倍數(shù)為地址的字節(jié)處開始分配空間

  如:若按4B對其模式的話,則每個變量(結(jié)構(gòu)體成員)的首地址總是從編號為4的整數(shù)倍的字節(jié)處開始分配空間。

  可設幾字節(jié)對齊如下:

  #pragma pack(push)    //保持原對齊格式

  #pragma pack(1)      //設定為n字節(jié)格式

  .......

  #pragma pack(pop)     //恢復為原對齊格式

3、結(jié)構(gòu)體大?。?/p>

  (1).總大小是下一個類型的整數(shù)倍,否則用單字節(jié)補齊(單字節(jié)最多補到4/8,具體看結(jié)構(gòu)體中最寬幾字節(jié))      //總大小指的是前面字節(jié)總數(shù)和當前的字節(jié)數(shù)之和。

  (2).結(jié)構(gòu)體大小是最寬字節(jié)的整數(shù)倍(一般情況下為4或8)

  (3).上述兩個條件必須同時成立。若最終結(jié)果不成立的話,則補齊整數(shù)倍即可。

4、下面舉例論證結(jié)構(gòu)體大?。?/p>

  (1). struct TEST{

     int a;

     short b;

     char c;

     struct TEST *next;

   };

  分析如下:4->2->1 (補1字節(jié))->4   共12字節(jié)。

內(nèi)存對齊模式與結(jié)構(gòu)體

    

  (2).借用一中的結(jié)構(gòu)體

  struct TEST1{

   short d;

   int e;

   char f;

   struct TEST g;

   struct TEST1 *next;

   struct TEST h;

   char i;

  };

  分析如下:2(補2字節(jié))->4->1(補3字節(jié))->12->4(想補也不能補,最多補到最寬單字節(jié),在這最多到4字節(jié),已經(jīng)為4字節(jié)了,所以不能在補了)->12->1

  一共為:41字節(jié),但是結(jié)構(gòu)體大小為最寬單字節(jié)的整數(shù)倍,在這應為4的整數(shù)倍。

  最終,此結(jié)構(gòu)體大小為44字節(jié)。

內(nèi)存對齊模式與結(jié)構(gòu)體   

   

  (3).借用一中的結(jié)構(gòu)體

  struct TEST2{

   short d;

   int e;

   double f;

   struct TEST1 *next;

   struct TEST g;

   char i;

  };

  分析如下:2(補2字節(jié))->4->8->4(補4字節(jié):前面一共16字節(jié),當前4字節(jié),所以總共20字節(jié),不是下一個數(shù)據(jù)類型(12)的整數(shù)倍,且最寬為8字節(jié),可補4字節(jié),構(gòu)成整數(shù)倍)->12->1

  一共為37字節(jié),但是結(jié)構(gòu)體大小為最寬單字節(jié)的整數(shù)倍,在這應為8的整數(shù)倍。

  最終此結(jié)構(gòu)體大小為40字節(jié)

內(nèi)存對齊模式與結(jié)構(gòu)體

結(jié)構(gòu)體類型極大的擴充了C語言,是數(shù)據(jù)類型更加豐富多彩!

網(wǎng)頁名稱:內(nèi)存對齊模式與結(jié)構(gòu)體
文章鏈接:http://www.rwnh.cn/article40/igideo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、手機網(wǎng)站建設云服務器、品牌網(wǎng)站設計ChatGPT、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
仲巴县| 高要市| 若尔盖县| 红桥区| 滁州市| 惠东县| 陵水| 墨竹工卡县| 新源县| 灵宝市| 兴安盟| 垫江县| 德令哈市| 曲麻莱县| 隆化县| 富裕县| 沅陵县| 信阳市| 阿坝县| 梁山县| 乌鲁木齐市| 上高县| 铁岭县| 平远县| 和龙市| 太原市| 获嘉县| 东海县| 昭苏县| 庄河市| 沅江市| 普兰店市| 新兴县| 庄河市| 凤山市| 五华县| 吉安县| 达拉特旗| 疏附县| 顺义区| 耒阳市|