arrays - 结构和Arduino

标签 arrays struct arduino

我正在尝试在 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)。

我找到了三种方法来实现这一目标:

  1. 将您的函数放入命名空间中,即使在 INO 文件中,您也可以获得完全控制。
  2. 将函数移至包含文件中
  3. 将函数包装到宏中,这样 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/

相关文章:

c - 将结构传递给函数

c - 串行指令位不清楚

c - ESP8266-01 于 2013 年 1 月 8 日发布,第一个原因 :4, 启动模式 :(3, 7)

android蓝牙连接错误(读取失败的套接字可能会关闭或超时)

c++ - move 语义可以帮助构建在 std::array 上的用户定义容器吗?

arrays - 使用汇编代码查找数组中的最大数字?

javascript - 获取 JSON 文件中的前 10 个值

arrays - 如何在结构中附加 slice

arrays - 我可以从 View Controller 文件访问 dataArray 但出现错误 Fatal error : Index out of range?

比较 C 中的两个变量