要做到这一点,你必须修改原始类型的定义,包括新的价值:
typedef enum {
UIModalTransitionStyleCoverVertical = 0,
UIModalTransitionStyleFlipHorizontal,
UIModalTransitionStyleCrossDissolve,
UIModalTransitionStylePartialCurl,
UIModalTransitionStyleCoverVerticalFlipped
} UIModalTransitionStyle;
否则,你可以承担其没有工作机会,并单独定义它:
typedef enum {
UIModalTransitionStyleCoverVertical = 0,
UIModalTransitionStyleFlipHorizontal,
UIModalTransitionStyleCrossDissolve,
UIModalTransitionStylePartialCurl,
} UIModalTransitionStyle;
typedef enum {
UIModalTransitionStyleCoverVerticalFlipped =
UIModalTransitionStylePartialCurl + 1
} ExtendedUIModalTransitionStyle;
,可以保持原有的枚举通常也完全正常工作的变量当/如果您分配了新的价值,以及(在典型情况下,这将只是一个int
) - 但它是不是有保证。至少在理论上,实现可以/可以分配足够的位来保持枚举,以这种方式添加更多的值将不起作用。它也可以进行范围检查,因此不允许指定任何超出范围值。这些都不常见,因此从实际的角度来看,这可能不是问题 - 但从理论的角度来看,没有什么能真正保证这样的代码可以工作。
如果你有框架的来源,你可以做这个和你喜欢的任何其他修改。 – ognian 2010-06-26 13:45:00
你想做什么是非常有意义的。不幸的是,枚举不能真正在外部扩展,例如,类可以是(通过继承等等)。 – apollodude217 2010-06-26 14:16:32