1

我惊讶地发现 Xcode 没有为以下代码发出错误,这在 C 中是无效的:

typedef enum : NSUInteger {
    FLAG_A = 1,
    FLAG_B = 2,
    FLAG_C = 4
} MyFlags;

这似乎使枚举NSUInteger的基础类型MyFlags与 C# 用于设置枚举的基础类型的语法非常相似。

这个语法是按照它出现的那样做,还是有别的意思?

4

2 回答 2

4

它是从 C++11 借用的一个特性,用于确保枚举的特定大小。它允许在框架的公共 API 中使用枚举,而不必担心 ABI 最终会崩溃。

Clang 实现了这个特性,并允许它在 Objective-C 中作为语言扩展使用。

于 2012-10-24T23:56:37.650 回答
1

这将在目标 c 中正常工作。您可以在枚举中为这些参数设置任何值。

于 2012-10-24T23:36:22.037 回答