我试图定义一个函数指针数组,其中每个函数都包含一个参数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,并不是完全无效的,而是因为它在你的代码中似乎是。此外,你从来没有通过指针调用函数,我期望它在发布的代码中被调用? –