2011-07-25 43 views
1

可能重複:
What does 'unsigned temp:3' meansC/C++單冒號

我是一個新手,以C/C++,我有這樣的代碼在Linux和win32下運行

typedef struct tMessageAction 
{ 
    unsigned char ActionId : 4; 
    unsigned short ID : 10; 
}tMessageAction; 

那麼單個冒號對這個變量做什麼? 他們是否指定要使用多少位? 這與某種類型的結構對齊屬性有關嗎?

+0

就像我說的這是在linux和win32上運行的,對於我的發現,這也造成了很多麻煩:「首先,內存中的位順序取決於CPU,內存填充規則可能因編譯器而異」 – riveri

回答

1

冒號定義了bitfield。他們不會更改對齊規則。

+0

非常感謝Yann – riveri