通常我們會這樣宣告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...