[英]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.