Arduino IDE不允许在函数外部使用struct变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino IDE不允许在函数外部使用struct变量相关的知识,希望对你有一定的参考价值。
我正在尝试创建struct类型的变量,这些变量在主循环和Arduino脚本中的所有其他函数中可用。
我做了一个简单的结构:
struct IDENTITY
{
int identifier;
bool is_alive;
}
该结构位于主要的ino
文件中;在函数loop
和setup
以及我可能使用的所有其他函数之前在顶部声明。
我确实尝试了一个简单的初始化函数,因为当我试图在脚本的顶部实例化一个结构IDENTITY(通常你放置全局变量,但在结构声明之后),我会得到一个未定义类型的错误。
void initialize()
{
struct IDENTITY testguy;
testguy.identifier = 1;
testguy.is_alive = true;
}
这个函数在struct定义之下,当我编译时,它不会给我错误。我从initialize()
打电话给setup()
,它运作正常。
现在我想用testguy
;虽然因为它处于不同的函数中,但它被创建为局部变量,其范围仅限于创建的函数,因此我无法从loop
或任何其他函数访问这些变量。
虽然我不能在函数之外的任何地方创建IDENTITY
类型的变量;所以我不确定如何处理这个问题。在使用C ++的Visual Studio中,我没有创建结构实例的问题,所以我认为它是C和Arduino IDE的问题?
答案
struct IDENTITY {
int identifier;
bool is_alive;
};
IDENTITY testguy = { 256, true };
void setup() {
testguy.identifier=6;
testguy.is_alive=false;
}
void loop() {
}
对我有用......
以上是关于Arduino IDE不允许在函数外部使用struct变量的主要内容,如果未能解决你的问题,请参考以下文章
arduino ide 环境esp8266 01s板bitset如何使用