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

时间:2016-04-25 18:25:23

标签: java c++ arduino

我遇到了C ++的问题

此外:

  • 我有一个变量,一个全局变量
  • 我有图书馆LiquidCrystal for Arduino Uno

我需要:

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

我的代码:

  

声明

LiquidCrystal lcd;
  

Initialazion

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

错误:   Initialazion!

我的问题:

  

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

1 个答案:

答案 0 :(得分:1)

由于构造函数参数用于设置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);
}

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