C語言結構體位元組對齊簡單計算方法

來源:互聯網
上載者:User

標籤:char   位元組對齊   方式   c語言   span   結構體位元組對齊   64位   語言   bsp   

1.在C語言裡面每一種資料類型都有位元組對齊比如在32位作業系統下:整型的自身對齊數就是 4 位元組,字元型就是 1 位元組,double就是 8 位元組。

但是結構體的計算方式就和普通的資料類型不一樣。

    在C語言裡面位元組對齊的方式主要根據“有效對齊數”來確定,那麼有效對齊數是怎楊確定的呢?  

  在結構體裡面::: 有效位元組對齊數 = (自身對齊數 < 最大位元組)?(自身對齊數):(最大位元組);

  自身對齊數 = 4位元組(32位作業系統);(8 位元組為32位作業系統)。

  最大位元組數 = 結構體裡面最大的一個資料類型所佔的位元組數。

列:struct test{

    char a;

    int  a;

    short  c;

  }d;

sizeof(d) == ? ; //在32位作業系統下為12位元組,64位作業系統下也為12位元組。(每一次都開4個位元組)

  struct  test2{

    char a;

    double b;

    short c;

  }d;

sizeof(d) == ? ;// 在32位作業系統下為16位元組(每一次開4個位元組),在64位作業系統下為24位元組(每一次開8個位元組)。

  

C語言結構體位元組對齊簡單計算方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.