繁体   English   中英

(Enum)-1在C中代表什么值? 如何在Swift中编写它?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM