我不知道該怎麼稱呼它,所以我不知道如何搜索它。這是什麼C語法?
unsigned int odd : 1;
編輯:
要細說,它來自這個片段:
struct bitField {
unsigned int odd : 1;
unsigned int padding: 15; // to round out to 16 bits
};
我推測這涉及到位,但我仍然不是所有的理解方式。
我不知道該怎麼稱呼它,所以我不知道如何搜索它。這是什麼C語法?
unsigned int odd : 1;
編輯:
要細說,它來自這個片段:
struct bitField {
unsigned int odd : 1;
unsigned int padding: 15; // to round out to 16 bits
};
我推測這涉及到位,但我仍然不是所有的理解方式。
它們是位域。將odd
和padding
存儲在一個unsigned int
(16位)中,其中odd
將佔據最低位,並且padding
位於unsigned int
的高位15位。
哇,一位程序員恰當地命名了他的結構?我排除了這種可能性,並沒有打擾搜索術語* bitfield *。 – Aerovistae
@Aerovistae實際上名稱是「位域」,但程序員可以省略其結構名稱中的短劃線。 –
這是一個位域 - 檢查C FAQ。
它是:的
unsigned int
的sizeof
返回4)位域可以節省內存,但可能會將指令添加到計算中。在某些情況下,編譯器可能會忽略您的位域設置。你不能對編譯器如何選擇實際佈局你的位域做任何假設,它可能取決於你的平臺的字節順序。
我使用bitfields的主要目的是當我知道我會做大量的數據複製,而不一定需要大量的計算或參考位域中的特定字段。
請在詢問之前先搜索網站,也請給它一個更好的標題。看看你的問題,我在右欄有很多「相關」的問題,這表明它很容易找到一些東西。 –
['unsigned temp:3'是什麼意思?](http://stackoverflow.com/questions/2950029/what-does-unsigned-temp3-mean) –