我正在尝试在 Arduino 中使用结构,我是初学者,我不知道如何在结构内声明数组并使用它(int pin[5]
和 int vecinos[6]
)。
typedef struct
{
int id;
int pin[5];
int tiempoCero;
int tiempoApagado;
int estado;
int vecinos[6];
} zonas;
zonas zona[5];
最佳答案
你的声明没问题。但是您需要了解 Arduino IDE 会自动为您生成函数原型(prototype)。不幸的是,IDE 的表现很差。它将生成的原型(prototype)排序到声明之前的顶部。因此您不能在任何函数定义中使用它们。除非您阻止 IDE 自动生成原型(prototype)。
我找到了三种方法来实现这一目标:
- 将您的函数放入命名空间中,即使在 INO 文件中,您也可以获得完全控制。
- 将函数移至包含文件中
- 将函数包装到宏中,这样 IDE 就不再将其识别为函数。例如。就像 TRICK17 macro
对于小文件,我的首选解决方案是#1。你的草图将是
namespace whatever {
typedef struct
{
int id;
int pin[5];
int tiempoCero;
int tiempoApagado;
int estado;
int vecinos[6];
} zonas;
function example(zonas z) {
...
}
}
void setup() {
...
}
void loop() {
whatever::zonas z;
...
whatever::example(z);
}
详细示例 look here.
关于arrays - 结构和Arduino,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19308071/