Arduino IDE不允许在函数外部使用struct变量

时间:2017-12-19 08:53:18

标签: struct arduino

我正在尝试创建struct类型的变量,这些变量在主循环和Arduino脚本中的所有其他函数中都可用。

我做了一个简单的结构:

struct IDENTITY
{
    int identifier;
    bool is_alive;
}

结构位于主ino文件中;在函数loopsetup以及我可能使用的所有其他函数之前在顶部声明。

我确实尝试过一个简单的初始化函数,因为当我试图在脚本的顶部实例化一个struct IDENTITY(通常你放置全局变量,但是在struct声明之后),我会得到一个类型未定义的错误

void initialize()
{
    struct IDENTITY testguy;

    testguy.identifier = 1;
    testguy.is_alive = true;
}

这个函数在struct定义之下,当我编译时,它不会给我错误。我从initialize()致电setup(),但效果很好。

现在我想使用testguy;虽然因为它处于不同的函数中,所以它被创建为局部变量,其范围仅限于创建的函数,因此我无法从loop或任何其他函数访问这些变量。 / p>

虽然我无法在函数之外的任何地方创建IDENTITY类型的变量;所以我不确定如何处理这个问题。在使用C ++的Visual Studio中,我没有创建结构实例的问题,所以我认为它是C和Arduino IDE的问题?

1 个答案:

答案 0 :(得分:1)

struct IDENTITY {
  int identifier;
  bool is_alive;
};

IDENTITY testguy = { 256, true };

void setup() {
  testguy.identifier=6;
  testguy.is_alive=false;
}

void loop() {
}

适合我...