2014-01-07 118 views
-1
{ 
    WORD test1:12; 
    WORD test2:4; 
} 

我發現在結構下面的代碼片段,我想知道什麼是:12:4究竟是什麼意思?結構元素聲明

+7

那些是位域。 – yngccc

+0

@yngum感謝您的幫助。 – user2699298

+1

如果'WORD'是一個有符號的整數類型,那麼'test1'和'test2'也會被標記,否則所有的都是無符號的。可以存儲的數字與您預期的相同:-2^11..2^11-1和-2^4..2^4-1用於帶符號的0..2^12-1和.. 2^4-1爲無符號。如何將它們打包到結構中是由實現定義的。 –

回答

1

他們是位域。 類和結構可以包含佔用存儲空間少於整數類型的成員。這些成員被指定爲位域。對位字段成員說明符規範的語法如下:

declarator : constant-expression

欲瞭解更多詳情,請http://en.cppreference.com/w/cpp/language/bit_field