Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 要共享常量的头文件或库?_C++_Arduino - Fatal编程技术网

C++ 要共享常量的头文件或库?

C++ 要共享常量的头文件或库?,c++,arduino,C++,Arduino,我正在和一个LED图书馆合作制作一些。我发现使用数字颜色值很烦人,所以我创建了自己的gamma校正颜色名称值列表(大约160个) 我想和大家分享一下,并想知道什么是最好的格式(在代码中)。我应该只有一个头文件: #define COLOR_somename 42 #define COLOR_anothername 223 或者我宁愿定义一个类,这样就可以访问如下值: ColorClass c=新的ColorClass(); c、 某种颜色; 高效的最佳方法是什么?如果可以使

我正在和一个LED图书馆合作制作一些。我发现使用数字颜色值很烦人,所以我创建了自己的gamma校正颜色名称值列表(大约160个)

我想和大家分享一下,并想知道什么是最好的格式(在代码中)。我应该只有一个头文件:

    #define COLOR_somename 42
    #define COLOR_anothername 223
或者我宁愿定义一个类,这样就可以访问如下值:


ColorClass c=新的ColorClass();
c、 某种颜色;


高效的最佳方法是什么?

如果可以使用C++11,则可以使用作用域枚举:

enum class Color {
    RED = 22,
    GREEN = 25
    // ...
};
请考虑作用域枚举不能隐式转换为整数

另一个选项是使用常规枚举:

enum Color {
    COLOR_RED = 22,
    COLOR_GREEN = 25
    // ...
};
定义是不好的,一般来说,我会避免使用它们,并分配一个颜色对象,因为这将在运行时花费您的时间


独立于您的选择,它应该在头文件中。

然后将枚举填充到头文件中?我是C(对于Arduino)@stwissel中的总n00b,是的,您应该在头中编写它,以便能够在单独的cpp文件中使用它。请注意,C++11将需要Arduino IDE和GCC的相当新的版本。