我知道可以使用(:ulong,:uint,:ushort,:byte)使用有符号或无符号的64,32,16和8位值作为其基础valud类型的枚举。但是有可能创建一个4位枚举吗?
(我正在编写一些与C ++交互的代码,而我在C#中使用的返回类型的结构有一个最自然的字段作为4位结构。)
答案 0 :(得分:4)
来自C#规范:
枚举的批准类型是
byte
,sbyte
,short
,ushort
,int
,uint
,long
或ulong
。
这些都不是4位类型。你在C ++方面也有同样的问题。
答案 1 :(得分:1)
但是有可能创建一个4位枚举吗?
不,主要是因为那会很尴尬和缓慢。从语法上讲,没有4位类型可以指定为基类型。
使用C ++和C#中的返回类型的结构有一个最自然的字段作为4位结构。
我对此非常怀疑,C ++可以处理位字段,但这非常有效(除了可能在空间中)。
使用C ++进行互操作是很困难的,当你选择返回类型时,不要让它变得比它更难。