天天看點

結構體struct、枚舉enum、聯合體union、位字段、自定義類型typedef、位元組對齊1.結構體struct2.枚舉變量enum3.聯合體union4.位字段5.自定義類型typedef6.位元組對齊pragma pach(x) 按x個位元組對齊

<a href="#1%E7%BB%93%E6%9E%84%E4%BD%93struct">結構體struct</a>

<a href="#11-%E7%BB%93%E6%9E%84%E4%BD%93%E7%9A%84%E5%9F%BA%E6%9C%AC%E7%9F%A5%E8%AF%86">1 結構體的基本知識</a>

<a href="#12-%E7%BB%93%E6%9E%84%E4%BD%93%E4%B8%8E%E5%87%BD%E6%95%B0">2 結構體與函數</a>

<a href="#13-%E7%BB%93%E6%9E%84%E4%BD%93%E6%95%B0%E7%BB%84">3 結構體數組</a>

<a href="#14-%E8%87%AA%E5%BC%95%E7%94%A8%E7%BB%93%E6%9E%84%E4%BD%93">4 自引用結構體</a>

<a href="#2%E6%9E%9A%E4%B8%BE%E5%8F%98%E9%87%8Fenum">枚舉變量enum</a>

<a href="#3%E8%81%94%E5%90%88%E4%BD%93union">聯合體union</a>

<a href="#4%E4%BD%8D%E5%AD%97%E6%AE%B5">位字段</a>

<a href="#41-%E4%B8%80%E8%88%AC%E7%9A%84%E6%96%B9%E6%B3%95%E5%AE%9A%E4%B9%89%E5%B1%8F%E8%94%BD%E5%90%97">1 一般的方法定義屏蔽嗎</a>

<a href="#42-%E7%94%A8%E4%BD%8D%E5%AD%97%E6%AE%B5%E6%9D%A5%E5%AE%9A%E4%B9%89%E5%B1%8F%E8%94%BD%E5%90%97">2 用位字段來定義屏蔽嗎</a>

<a href="#5%E8%87%AA%E5%AE%9A%E4%B9%89%E7%B1%BB%E5%9E%8Btypedef">自定義類型typedef</a>

<a href="#6%E5%AD%97%E8%8A%82%E5%AF%B9%E9%BD%90">位元組對齊</a>

<a href="#pragma-pachx-%E6%8C%89x%E4%B8%AA%E5%AD%97%E8%8A%82%E5%AF%B9%E9%BD%90">pragma pachx 按x個位元組對齊</a>

傳遞結構體的每個成員變量;

傳遞整個機構體;

傳遞指向結構體的指針;

例子1

例子2

例子3

好處:不确定類型時,或者相容多種類型。

嵌套在結構體

例子2-2

例子2-3

unsigned int 最大是<code>4位元組*8位 = 32位</code>,sizeof是總的位元組數,且為4的倍數(0,4,8,16…).

可移植性

容易了解

以最長(系統一次讀的長度)為基本機關。

32位系統一次4位元組,long long 8位讀兩次。sizeof是以%d: int 傳回。

64位系統一次8位元組,沒long時,一次讀4位元組。sizeof是以%lu: long unsigned int 傳回。LL和L都是8個位元組。

Wu_Being部落格聲明:本人部落格歡迎轉載,請标明部落格原文和原連結!謝謝!

結構體struct、枚舉enum、聯合體union、位字段、自定義類型typedef、位元組對齊1.結構體struct2.枚舉變量enum3.聯合體union4.位字段5.自定義類型typedef6.位元組對齊pragma pach(x) 按x個位元組對齊

如果你看完這篇博文,覺得對你有幫助,并且願意付贊助費,那麼我會更有動力寫下去。

繼續閱讀