如何在 C++ 中初始化然后为 uint32_t 数组赋值
How to initialize and then later assign values to a uint32_t array in C++
我在 Arduino 中使用 C++ 创建一个 patternArray
随机 uint32_t 值(颜色),并将这些颜色与用户通过按钮从预定义 colorArray
.问题是我需要在分配随机值之前初始化一个随机种子,但我不知道正确的语法(当我似乎得到正确的语法时,我的颜色比较评估失败)。
uint32_t colorRed = pixels.Color(255, 0, 0);
uint32_t colorGreen = pixels.Color(0, 150, 0);
uint32_t colorBlue = pixels.Color(0, 255, 255);
uint32_t colorYellow = pixels.Color(255, 255, 0);
uint32_t colorArray[4] = {colorRed, colorGreen, colorBlue, colorYellow};
uint32_t patternArray;
void setup() {
randomSeed(millis());
patternArray[4] = {colorArray[random(4)], colorArray[random(4)], colorArray[random(4)], colorArray[random(4)]};
}
void loop(){
if (colorArray[0] == patternArray[0]) { ... }
}
这会引发错误:
invalid types 'uint32_t {aka long unsigned int}[int]' for array subscript
如何正确执行此操作才能使比较不会失败
在C++中,你不能给数组赋值;你可以初始化它,即在它的定义过程中。
所以像下面这样初始化一个数组就OK了,
uint32_t colorArray[4] = {colorRed, colorGreen, colorBlue, colorYellow};
分配给数组时不是:
uint32_t patternArray;
patternArray = { 1,2,3,4 };
在您的代码中,您可以改为分配给数组成员:
void setup() {
randomSeed(millis());
patternArray[0] = colorArray[random(4)];
patternArray[1] = colorArray[random(4)];
patternArray[2] = colorArray[random(4)];
patternArray[3] = colorArray[random(4)];
}
我在 Arduino 中使用 C++ 创建一个 patternArray
随机 uint32_t 值(颜色),并将这些颜色与用户通过按钮从预定义 colorArray
.问题是我需要在分配随机值之前初始化一个随机种子,但我不知道正确的语法(当我似乎得到正确的语法时,我的颜色比较评估失败)。
uint32_t colorRed = pixels.Color(255, 0, 0);
uint32_t colorGreen = pixels.Color(0, 150, 0);
uint32_t colorBlue = pixels.Color(0, 255, 255);
uint32_t colorYellow = pixels.Color(255, 255, 0);
uint32_t colorArray[4] = {colorRed, colorGreen, colorBlue, colorYellow};
uint32_t patternArray;
void setup() {
randomSeed(millis());
patternArray[4] = {colorArray[random(4)], colorArray[random(4)], colorArray[random(4)], colorArray[random(4)]};
}
void loop(){
if (colorArray[0] == patternArray[0]) { ... }
}
这会引发错误:
invalid types 'uint32_t {aka long unsigned int}[int]' for array subscript
如何正确执行此操作才能使比较不会失败
在C++中,你不能给数组赋值;你可以初始化它,即在它的定义过程中。 所以像下面这样初始化一个数组就OK了,
uint32_t colorArray[4] = {colorRed, colorGreen, colorBlue, colorYellow};
分配给数组时不是:
uint32_t patternArray;
patternArray = { 1,2,3,4 };
在您的代码中,您可以改为分配给数组成员:
void setup() {
randomSeed(millis());
patternArray[0] = colorArray[random(4)];
patternArray[1] = colorArray[random(4)];
patternArray[2] = colorArray[random(4)];
patternArray[3] = colorArray[random(4)];
}