我有一系列需要許多布爾字段的類,大約在4-10之間。我想不必爲每個布爾值使用一個字節。我一直在尋找到位字段結構,是這樣的:布爾比特字段vs邏輯比特屏蔽或比特移位 - C++
struct BooleanBitFields
{
bool b1:1;
bool b2:1;
bool b3:1;
bool b4:1;
bool b5:1;
bool b6:1;
};
但做了一些研究,我看到很多人說,這可能會導致低效的內存訪問和不值得節省內存後。我想知道這種情況的最佳方法是什麼。我應該使用位字段,還是使用帶位掩碼的字符(和/或 )來存儲8位?如果第二種解決方案更適合移位或使用邏輯?
如果任何人都可以評論他們會使用什麼方法,爲什麼它會真正幫助我決定我應該走哪條路線。
在此先感謝!
您應該使用任何對您更爲方便的方法,除非您有硬性數據表明這種選擇會以可觀察的方式影響應用程序的性能。 – Jon 2012-04-21 18:58:23
http://stackoverflow.com/questions/2638015/how-slow-are-bit-fields-in-c
位域只會爲你做掩蓋。 – ssteinberg 2012-04-21 18:59:14
那麼其他職位是正確的話題,但它似乎仍然沒有直接回答這個問題。 :( – 2012-04-21 19:05:46