[英]What value does (Enum) -1 represent in C? How to write it in Swift?
我需要将C代码转换为Swift,我多次遇到此变量赋值,但不知道它代表什么值。
在C中具有此枚举:
typedef XX_ENUM_BEGIN(XXPosition) {
XXTop,
XXBottom,
} XX_ENUM_END(XXPosition);
被分配给这样的变量:
.parentPosition = (XXPosition) -1
是第一个枚举值,最后一个还是零...?
在C中,枚举是整数。 XX_ENUM_BEGIN
和XX_ENUM_END
宏有助于将其设置为XXTop
为0且XXBottom
为1。
由于C枚举是int,因此它们实际上可以保存任何int值(无论使用何种大小的int实现),而不仅仅是合法的枚举值。 在这种情况下,代码将分配一个不会映射到任何值的值(-1)。 C允许这样做,因为(XXPosition)
说“相信我,我知道我在做什么”。
要将其转换为Swift,您需要做出选择。 您需要为“ none”添加一个新的枚举大小写并使用它,或者需要使parentPosition
可选,使其为nil
。 如果此代码只是将parentPosition
设置为-1作为默认值(稍后立即将其更新为正确的值),则也可以从一开始就将其设置为默认值(例如top
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.