2012-07-25 124 views
2

可能重複:
What is the size of an enum in C?C語言枚舉數據類型?

改編職系的C語言枚舉:用戶有超過枚舉變量的大小無法控制。有人可以解釋這個嗎?

+0

請參閱http://stackoverflow.com/questions/366017/what-is-the-size-of-an-enum-in-c – 2012-07-25 07:26:48

+0

您確實擁有控制權,因爲枚舉的數據類型足夠大以適應你最大的數字。你還需要知道些什麼? – RedX 2012-07-25 07:27:28

回答

0

這種說法是從C99 6.7.2.2p4

每個枚舉類型應與字符,有符號整數類型,或 無符號整數類型兼容。類型的選擇是實現定義的,),但應該是 能夠表示枚舉的所有成員的值。

108)一個實現可能會延遲選擇哪個整數類型,直到所有枚舉常量都有 被看到。

這可以讓編譯器做出它認爲是特定枚舉的最佳選擇。枚舉可能不是在機器間傳遞的二進制消息中使用的最佳選擇。但是,您可以使用整數類型,並轉換回枚舉類型。