程式設計技巧 C 中優化BOOL 變數的宣告

2021-09-22 04:27:22 字數 399 閱讀 6238

通常我們會這樣宣告bool 變數:

class cmyclass ;

考慮到bool 變數在win32 下其實是乙個int ,佔4個位元組,那麼上面8個bool變數就會占去 32個位元組。

typedef int bool; // bool takes 4 bytes

其實,我們可以改變bool變數的宣告來使之只佔乙個bit:

class cmyclass ;

上面的**中,每個bool 變數只佔了1個位元(bit), 那麼上面8個bool變數就會占去 1個位元組。 

記憶體節省了32倍!!!

不過從另外一方面, cpu 在處理這些bit型別的bool變數的時候, 需要做位運算來把其中的值取出來, 所以會額外消耗cpu資源。 使用的時候需要綜合考慮記憶體和速度之間關係。

程式設計技巧 C 中優化BOOL 變數的宣告

通常我們會這樣宣告bool 變數 class cmyclass 考慮到bool 變數在win32 下其實是乙個int 佔4個位元組,那麼上面8個bool變數就會占去32個位元組。typedef int bool bool takes 4 bytes 其實,我們可以改變bool變數的宣告來使之只佔乙個...

程式設計技巧 C 中優化BOOL 變數的宣告

通常我們會這樣宣告bool 變數 class cmyclass 考慮到bool 變數在win32 下其實是乙個int 佔4個位元組,那麼上面8個bool變數就會占去32個位元組。typedef int bool bool takes 4 bytes 其實,我們可以改變bool變數的宣告來使之只佔乙個...

關於c 中的bool變數

bool變數有兩個值,true和false,它可以轉變為int型別,true對應的是1,false對應的是0 include using namespace std int main bool flag true cout true int flagcout false int flag 輸出 tr...