【发布时间】:2015-04-10 11:22:51
【问题描述】:
在下面的例子中如何调用函数。
我有一个结构
struct Timing_Thread_Struct {
int SleepTime;
void (*Timing_Function)(int);
};
我有填充结构并创建线程的功能
struct Timing_Thread_Struct timing_struct;
timing_struct.SleepTime = 30;
timing_struct.Timing_Function = ExampleFunction;
pthread_create(&delay_thread, NULL, Delay_Thread_Function, (void *)&timing_struct);
pthread_detach( delay_thread);
示例函数是
void ExampleFunction(int event) {
//Turn on a digital channel
}
最后是我的 Delay_Thread_Function
void *Delay_Thread_Function(void *arguments)
{
struct Timing_Thread_Struct *timing_struct = arguments;
msleep(timing_struct -> SleepTime );
//How do i call the function here?
pthread_exit(NULL);
return NULL;
}
如何调用存储在结构中的函数?
我试过了
timing_struct->Timing_Function(1);
然后它就崩溃了。
谢谢
【问题讨论】:
标签: c pointers struct pthreads