2016-04-25 70 views
-3

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

另外一个问题:

  • 我有一个变量,全局变量
  • 我有库LiquidCrystal的Arduino的乌诺

我会:

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

我的代码:

Declaration

LiquidCrystal lcd; 

Initialazion

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

Error: Initialazion!

我的问题:

How can I initialize anything an uninitialized global variable in a method?

+1

这是你从编译器得到的错误信息的全文吗? – Logicrat

+0

哪种语言,Java或C++?声明,分配和复制变量时差别很大。 –

+0

错误:Initialazion!正确:初始化。 ...请发布完整的错误信息 – user463035818

回答

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); 
} 

只要确保在完成后删除对象。当然,如果对象必须永远活着,这是可能的,因为它是全球性的,这是一个嵌入式项目,所以程序永远不会结束,那么您永远不必删除它。