要做到這一點,你必須修改原始類型的定義,包括新的價值:
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