我試圖定義一個函數指針數組,其中每個函數都包含一個參數int
。我也想設置在數組聲明函數指針數組,傳遞數組中定義的值
所以我有一個TIMED_TASK
結構,將容納函數指針和值,我想這個int參數的值傳遞
typedef struct
{
void (*proc)(int);
int delayMsec;
} TIMED_TASK;
然後,我有的TIMED_TASK
就像這樣
static const TIMED_TASK attractSequence[] =
{
{ LightsOn, 1000 },
{ LightsOff, 500 },
{ EndSequence, 0 }
};
我想每個的那些功能它調用反過來,延遲值傳遞給每個功能的陣列。這是我期望我的語法錯誤的地方(我仍然在學C)。我貌似完全不
void loop() // It's an arduino project :)
{
attractSequence[sequence];
sequence++;
}
void LightsOn(int pause)
{
// I do not hit this routine for some reason?
Serial.print("LIGHTS ON");
Serial.print(pause);
}
void LightsOff(int pause)
{
Serial.print("LIGHTS OFF");
Serial.print(pause);
}
這是完全有可能的,我在這裏採取了錯誤的方式打我LightsOn()
常規,但我希望你能明白我想要的目的。任何建議非常歡迎!
你確定這是直線上升C 2這看起來像是一種嵌入式方言,如arduino語言。 – Alex
正確,這是一個arduino項目。但我相信語法應該與C相同? – PaulG
不是,'Serial.print(pause)'是無效的c,並不是完全無效的,而是因爲它在你的代碼中似乎是。此外,你從來沒有通過指針調用函數,我期望它在發佈的代碼中被調用? –