簡體   English   中英

我可以在c ++中定義枚舉的大小嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM