2016-04-25 31 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); 
} 

只要確保在完成後刪除對象。當然,如果對象必須永遠活着,這是可能的,因爲它是全球性的,這是一個嵌入式項目,所以程序永遠不會結束,那麼您永遠不必刪除它。