[英]Can I define the size of an enum in c++?
根據我所知(從我在cpp編程語言中讀到的內容),大小將是“可以保持其范圍並且不大於sizeof(int)的某種整數類型的大小,除非枚舉器不能表示為int或作為unsigned int“。
但是有可能以某種方式定義尺寸嗎? 例如,我想使用一個枚舉,其sizeof是自然單詞的大小(通常是unsigned long)。
你可以在C ++ 11中:
enum /*class*/ MyEnum : unsigned long
{
Val1,
Val2
};
(您可以為舊式enum
或新式enum class
指定枚舉的大小。)
您還可以通過有趣的詭計來增加枚舉的最小大小,利用您引用的句子的最后一個短語:
enum MyEnum
{
Val1,
Val2,
ForceSize = 0xFFFFFFFF // do not use
};
...這將確保枚舉至少為32位。
在C ++ 11中,您可以使用枚舉類,您可以在其中指定基礎類型。 在C ++ 03中沒有解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.