enum在記憶體中占用多少儲存空間,為什麼在使用enum型別的時候不用寫上enum的名字呢,想struct一樣呼叫?在網上搜尋了一下,找到了想要的結論!
enum定義類似與下面這樣先說為什麼red,不能寫成color::red,後面這種寫法似乎更符合我們的習慣。原因是:enum color ;
用起來可能像這樣:
color color = red;
switch(color)
在c++中,列舉型別中定義的常量,屬於
定義列舉的作用域
,而不屬於這個列舉型別;
我們可以這樣寫:
color color = ::red;
卻不能這樣寫:
color color = color::red
關於列舉型別所占用的記憶體大小,在stackoverflow中有關於這樣的乙個帖子,個人認為解釋的比較合理。
其中的一句解釋是:之所以是4個位元組是因為enum型別是作為乙個int來儲存的。
牛客網 列舉(enum)所佔記憶體大小
這裡我們先來看一道題 這是牛客網上的乙個題,我在計算這個類的大小時,對於enum列舉型別所佔空間的大小有了一些困惑,通過查閱資料我了解到其實在c 標準文件中是這樣說明的 列舉型別的尺寸是以能夠容納最大枚舉子的值的整數的尺寸 同時標準中也說名了 列舉型別中的枚舉子的值必須要能夠用乙個int型別表述 也...
估算lua記憶體大小
檢視lua占用記憶體大小 想要獲取lua元素的size,無法直接使用sizeof,需要使用collectgarbage local function getmem return collectgarbage count endcollectgarbage stop local before getm...
類記憶體大小分析
include using namespace std class test int main 這是因為空類也可以被例項化,但是例項化的物件必須要有記憶體位址,所以空類會被加入乙個位元組,用來得到例項化的記憶體位址。include using namespace std class test int...