我正在尝试创建struct类型的变量,这些变量在主循环和Arduino脚本中的所有其他函数中都可用。
我做了一个简单的结构:
struct IDENTITY
{
int identifier;
bool is_alive;
}
结构位于主ino
文件中;在函数loop
和setup
以及我可能使用的所有其他函数之前在顶部声明。
我确实尝试过一个简单的初始化函数,因为当我试图在脚本的顶部实例化一个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的问题?
答案 0 :(得分:1)
struct IDENTITY {
int identifier;
bool is_alive;
};
IDENTITY testguy = { 256, true };
void setup() {
testguy.identifier=6;
testguy.is_alive=false;
}
void loop() {
}
适合我...