真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

內存對齊與自定義類型

一、內存對齊

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網(wǎng)站建設、網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的霍山網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

  (一)、為什么會有內存對齊?

    1、為了提高程序的性能,數(shù)據(jù)結構(尤其是棧)應該盡可能的在自然邊界上對齊。原因是為了訪問未對齊的內存,處理器需要進行兩次訪問,而訪問對齊的內存,只需要一次就夠了。這種方式稱作“以空間換時間”在很多對時間復雜度有要求問題中,會采用這種方法。

  內存對齊與自定義類型

   由此我們可以明白位段的優(yōu)點,本來定義了5個成員,需要5個存儲單位,但是使用位段后只需要4個存儲空間就足夠了。

  3、優(yōu)點:

    但它的成員是一個或多個位的字段,這些不同長度的字段實際上是存儲于一個或多個×××變量中,他的優(yōu)點是能夠以較少的內存單元存儲數(shù)據(jù)。位段可以用×××形式輸出。

例2:

     struct tagAAA

                {

                  unsigned int a : 1;

                  unsigned int  : 2;           //沒有聲明變量,但是卻指定位段大小,稱為占位。

                  unsigned int c : 6;

                  unsigned int d : 4;

                  unsigned int e;             //沒有指定位段大小,默認為自身類型的大小

                 }AAA_S;                

             

(七)、聯(lián)合

  1、聯(lián)合的聲明:

          typedefunionA

           {

                inti;

                charc;

            }A;

  2、聯(lián)合的特點:

    聯(lián)合成員之間共用同一塊空間。聯(lián)合的大小等于成員中所占內存最大變量大小??梢杂脕頊y大小端。

(八)、枚舉:

    1、聲明:

           typedefenumA

           {

                   zero,

                   one,

                    two

            }A;

如果沒有對枚舉成員進行初始化時,則默認枚舉成員從0開始依次遞增

 注意:

      1、在同一個程序中,不能不能聲明同名的枚舉類型

      2、在同一個程序中,不同的枚舉類型的枚舉成員不能同名。

      3、任何枚舉的大小都是4

  2、枚舉與#define 標識符之間區(qū)別:

      1、#define 標識符在預編譯期間進行簡單替換。枚舉類型在編譯的時候確定其值。

      2、枚舉常量可以調試,#define 標識符不可以。

      3、枚舉一次可以定義大量的枚舉量。


文章標題:內存對齊與自定義類型
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/pisdde.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部