2017-03-26 65 views
0

我正在使用LED庫來製作一些blinking lights。我發現工作的數值顏色值令人討厭,所以我創建了我自己的伽馬校正顏色名稱值列表(其中約160)頭文件或庫共享常量?

我想分享,並想知道什麼是最好的格式(代碼)。我應該只是一個頭文件:

#define COLOR_somename 42 
    #define COLOR_anothername 223 

否則我寧願定義一個類,這樣一臺可以上網的值是這樣的:

ColorClass c = new ColorClass(); c.somecolor;

什麼是最好的方法有效?

回答

0

如果你可以使用C++ 11你可以使用範圍的枚舉:

enum class Color { 
    RED = 22, 
    GREEN = 25 
    // ... 
}; 

請考慮到,作用域枚舉不是隱式轉換爲整數的帳戶。

另一種選擇是使用常規的枚舉:

enum Color { 
    COLOR_RED = 22, 
    COLOR_GREEN = 25 
    // ... 
}; 

定義是不好的,一般我會避免他們以及分配一個顏色對象,因爲它會使你在運行時。

獨立於你的選擇它應該在一個頭文件。

+0

然後將enum填充到頭文件中?我是C中的總數n00b(對於Arduino) – stwissel

+0

@stwissel,是的,你應該把它寫在頭文件中,以便能夠在單獨的cpp文件中使用它。 – Alex

+0

請注意,C++ 11將需要相當新的Arduino IDE以及GCC的最新版本。 –