void *(*pthread_handlers[])(void *) = {
led_cntl,
gprs_cntl,
camera_cntl,
firehydrant_cntl,
alarm_cntl,
};
这是一个函数指针数组,pthread_handlers是一个指针数组,数组里得每一个成员指向了一个函数,该函数的返回值类型为void*, 参数类型是void *,
pthread_handlers[0]指向 led_cntl,pthread_handlers[1]指向gprs_cntl, 以此类推,函数调用的时候只要用数组来就可以了,比如你要调用led_cntl,
你可以写成pthread_handlers0;
最后一行是pthread_handlers[0](); 不知道为什么没有显示完整
返回值类型为void*, 参数类型是void *的函数指针数组
定义了一个数组,其数组名为 pthread_handler
_数组中每一个元素均为一个函数指针
且该指针所指向函数的返回值类型为void * , 参数类型为 void *
例如该数组的第0个元素为 led_cntl ,
其对应的函数为 void * led_cntl ( void * ) { }
这种形式被称为 函数指针数组 ,其本质上是一个数组。
定义了一个返回值为void* ,参数为void*的函数数组
void (*pthread_handlers[])(void *) = {
led_cntl,
gprs_cntl,
camera_cntl,
firehydrant_cntl,
alarm_cntl,
};
后面的(void *) 表示是函数, 前面的 void *表示返回类型为void,再看*pthread_handlers[]里面【】表示是数组,前面的*表示是指针。实际就是参数为
void*切返回值为void*的函数指针数组。 是一个这样的类型void ([])(void *)
定义了一个函数指针数组,其中包含5个函数
括号前面的是返回类型,【】表示有五个函数指针的数组