enum的記憶體大小

2021-06-21 09:19:45 字數 681 閱讀 7587

enum在記憶體中占用多少儲存空間,為什麼在使用enum型別的時候不用寫上enum的名字呢,想struct一樣呼叫?在網上搜尋了一下,找到了想要的結論!

enum定義類似與下面這樣

enum color ;

用起來可能像這樣:

color color = red;

switch(color)

先說為什麼red,不能寫成color::red,後面這種寫法似乎更符合我們的習慣。原因是:

在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...