【发布时间】:2018-09-26 10:35:47
【问题描述】:
我正在查看some Arduino code 并遇到了我以前从未见过的构造:
CRGBPalette16 currentPalette( CRGB::Black );
CRGB::Black 是一个常数,正如一些人指出的那样,它是一个数字。
在后面的代码中,作者似乎直接写给currentPalette(或其他类似变量),如下所示:currentPalette[12] = CRGB::Black;
currentPalette 是一个对象实例吗?如果是这样,你怎么能像访问数组一样访问它?
【问题讨论】:
-
它不是有效的 C。但它可能是 C++。
-
它也可能是 C 中的宏。编辑:不,它不能。但是,看了其余的代码,我相信它确实是 C++。
-
你确定
CRGB::Black实际上是一个结构体而不是一个枚举常量吗? -
@wildplasser:它是 Arduino 语言,它是 C++ 的未指定、未记录(基本上是“无论 Arduino IDE 接受什么”)的近亲。实际的编译器是 GCC 的一个分支,但 IDE 对代码进行了一些预处理和包装(例如生成合适的
main方法)。 -
CRGB::Black是一个数字,而不是一个结构。CRGBPalette16有许多构造函数,具有不同数量的参数。相关:FastLED reference.
标签: c++ arduino variable-declaration