当在loop()中时,类会初始化,但在setup()中则不会。

问题描述 投票:-2回答:2

我在Arduino中创建了一个类,并带入了这个类。代码编译后运行正常,当:。

#include <myclass.h>

void setup(){
// Do some setup if needed
}

void loop(){
myclass newInstance;
newInstance.setSomething();
newInstance.getSomething();
}

但在以下情况下无法验证编译

#include <myclass.h>

void setup(){
myclass newInstance;
newInstance.setSomething();
}

void loop(){
newInstance.getSomething();
}

错误:"newInstance "没有在这个范围内声明。

我见过一些人在设置和循环之外进行实例化(就在include部分下面)。请解释一下创建一个实例然后在循环中使用它的最佳实践。我想在循环部分之外实例化,这样我就不会在每次循环中都创建一个实例。

loops class arduino installation instance
2个回答
2
投票

你应该在全局范围内声明对象。在C++中的变量声明(Arduinos的语言基本上是C++)在以下情况下有效 范围

所以你的代码应该是这样的

#include <myclass.h>

myclass newInstance;

void setup(){

newInstance.setSomething();
}

void loop(){
newInstance.getSomething();
}
© www.soinside.com 2019 - 2024. All rights reserved.