簡體   English   中英

訪問C中的類變量(Arduino時區庫)

[英]accessing a class variable in C (Arduino Timezone library)

我試圖將時區庫用於Arduino。 https://github.com/JChristensen/Timezone/blob/master/examples/Clock/Clock.pde

在這里,時區被全局初始化,然后在loop()中打印

//Line numbers used for reference. Not part of code.
1.TimeChangeRule myDST = {"EDT", Second, Sun, Mar, 2, -240};    //Daylight time = UTC - 4 hours
2.TimeChangeRule mySTD = {"EST", First, Sun, Nov, 2, -300};     //Standard time = UTC - 5 hours
3.Timezone myTZ(myDST, mySTD);

我想根據用戶輸入更改myTZ(dst,std)。 這將在函數內部發生。 但是當我嘗試這樣做時,即使是在第3行之后

myTZ(mySTD, mySTD);

我得到一個錯誤

no matching function for call to 'Timezone::Timezone()'

我對課程不熟悉。 如何將myTZ用作全局實例,並進行設置/更改/在其他功能中使用它?

好的,我已經在提供的鏈接中查看了Timezone定義。 好像使用TimeChangeRule創建對象TimeChangeRule ,就無法再從代碼中更改對象(除非通過調用readRules而不是您想要的)。 因此,您可以像現在一樣擁有Timezone對象:

Timezone myTZ(myDST, mySTD);

嘗試修改它的函數可能是:

void tzObjectModifier(Timezone &rTZ) {
    //perform all the operations(including reading user's input) to initialize newDST and newSTD TimeChangeRule objects
    rTZ(newDST, newSTD);
    //other additional statements
}

針對myTZ對象調用函數,例如:

tzObjectModifier(myTZ);

函數退出后,全局myTZ將具有您在函數內部設置的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM