宣告和使用
struct FileAttributes
{
unsigned int ReadOnly: 1;
unsigned int Hidden: 1;
};
這裡,這兩個欄位中的每一個將佔用記憶體中的 1 位。它由變數名後面的 : 1
表示式指定。位欄位的基本型別可以是任何整數型別(8 位 int 到 64 位 int)。建議使用 unsigned
型別,否則可能會出現意外情況。
如果需要更多位,則將 1
替換為所需的位數。例如:
struct Date
{
unsigned int Year : 13; // 2^13 = 8192, enough for "year" representation for long time
unsigned int Month: 4; // 2^4 = 16, enough to represent 1-12 month values.
unsigned int Day: 5; // 32
};
整個結構只使用 22 位,並且通過正常的編譯器設定,sizeof
這個結構將是 4 個位元組。
用法非常簡單。只需宣告變數,並像普通結構一樣使用它。
Date d;
d.Year = 2016;
d.Month = 7;
d.Day = 22;
std::cout << "Year:" << d.Year << std::endl <<
"Month:" << d.Month << std::endl <<
"Day:" << d.Day << std::endl;