java枚舉詳解 C語言中如何控制枚舉類型占用空間的大?。?/h1>
C語言中如何控制枚舉類型占用空間的大???標準C沒有指定枚舉類型占用的空間大小。它只說“枚舉類型的大小是可以容納最大枚舉數(shù)的值的整數(shù)的大小”。同時還規(guī)定了“枚舉類型中枚舉數(shù)的值必須用int類型表示”,即
C語言中如何控制枚舉類型占用空間的大???
標準C沒有指定枚舉類型占用的空間大小。它只說“枚舉類型的大小是可以容納最大枚舉數(shù)的值的整數(shù)的大小”。同時還規(guī)定了“枚舉類型中枚舉數(shù)的值必須用int類型表示”,即枚舉類型的大小不能超過int類型Inch的大小,但必須與int類型的大小相同嗎?上面的標準已經非常明確,只要整數(shù)能容納最大枚舉數(shù)的值,就可以是char,short和int不同的C編譯器對枚舉類型的大小定義不同,但是程序員不能認為修改枚舉類型會占用空間。
編寫代碼求C語言中枚舉類型所占的內存長(用sizeof)?
枚舉類型,在C語言中查找sizeof,可以先定義一個枚舉類型,然后計算枚舉類型中的元素或類型的大小來獲得內存長度。
代碼如下
#include
enum test
{
Test0,
test1,
test2
}
]int main()
{
printf(“測試大小”為%dn“,sizeof(test))//按類型查找大小。
Printf(“size of test”為%dn“,sizeof(test1))//查找元素的大小。
Return 0
}對于枚舉類型,是否有負值將根據(jù)無符號int或int來處理,但是否有符號不會影響int的占用空間,因此在平臺實現(xiàn)中,任何枚舉類型或枚舉變量都會占用與int類型相同的空間。對于主流32位/64位平臺,枚舉類型占4字節(jié)。結果的大小是4。