C++ Arduino 如何在方法中初始化任何未初始化的全局变量



我对C++有问题

也:

  • 我有一个变量,一个全局变量
  • 我有Arduino Uno的LiquidCrystal

我会:

  • 全局变量应在方法中初始化。

我的代码:

声明

LiquidCrystal lcd;

Initialazion

void Crystal::begin(){
    lcd = LiquidCrystal(1,2,3,4,5,6);
}

错误: 初始化!

我的问题:

如何在方法中初始化任何未初始化的全局变量?

由于构造函数参数旨在设置 LCD 的 IO 引脚配置,并且这些是编译时常量,因此我看不出无法立即初始化全局对象的原因:

LiquidCrystal lcd(1, 2, 3, 4, 5, 6);

如果必须在函数void Crystal::begin()中完成,那么唯一的选择是动态创建对象。

LiquidCrystal *lcd;
void Crystal::begin()
{
    lcd = new LiquidCrystal(1, 2, 3, 4, 5, 6);
}

只需确保在完成对象后将其删除即可。当然,如果对象必须永远存在,这是可能的,因为它是全局的,而且这是一个嵌入式项目,所以程序永远不会真正结束,那么你就不必删除它。

最新更新