2012-04-17 33 views
1

但是,我正在調整here所示的代碼,而不是使用單個值來創建可能值的枚舉。在C/C++中使用枚舉

我想如果可能的話把這個頭文件,我想它包含的值類似...

enum Notes{ 
    NOTE_B0 = 31, 
    NOTE_C1 = 33, 
    NOTE_CS1 = 35 
}; 

現在,我期待通過枚舉值進行迭代,如何我會這樣做嗎?

也可以存儲超過255的值?

+2

你的文件被命名爲'helloworld.c',但你講的是一堂課。你使用C++還是C? – 2012-04-17 00:04:03

+0

... Aaand錯誤消息已消失。我是否幻覺?因爲我沒有看到編輯日誌... – 2012-04-17 00:05:17

+0

@ RichardJ.RossIII:發佈信息後有五分鐘的窗口,其中可以進行更改而不會被記錄。 – GManNickG 2012-04-17 00:06:13

回答

3

你可以做的最好的是創建一個所有枚舉值的靜態常量數組,並遍歷它。如果枚舉值都是連續的,那麼顯然可以很容易地遍歷它們,但是由於運算不好,

+0

附帶的版本,他們只需要均勻分步不連續,但你的觀點是有效的。 – twain249 2012-04-17 00:10:59

+0

Yeah def not order,just just to make a interface that the user can send a Text representation and it is converted to the note integer。例如,他們會通過AS3,它會一直循環,直到它在AS3上找到數字表示 – Jackie 2012-04-17 00:12:27

1

您可以存儲所有適合底層整數類型的值。使用C++ 11,您可以指定基礎整數。如果你沒有指定它,編譯器會嘗試找到所有值都適合的值。

迭代是不可能的,因爲枚舉元素只是編譯時間值。編譯器不需要在運行時存儲它們。