C语言中typedef void(*F)(类型)解读

文章目录

  • 一、typedef void(*T)(void *)
    • 1. void(*T)()
    • 2. void(*T)(void *)
    • 3. typedef void(*T)(void *)
  • 二、typedef void(*T)(非void *指针)
    • 1.void(*task_func)()
    • 2. void(*task_func)(uint8_t tb_flag, uint8_t *const power_mode)
    • 3. typedef void(*task_func)(uint8_t tb_flag, uint8_t *const power_mode)
  • 参考文章


一、typedef void(*T)(void *)

层层剖析

1. void(*T)()

T是一个指向返回值为void ,参数为空的类型的函数指针

2. void(*T)(void *)

T是一个指向返回值为void,参数为void *类型的指针

3. typedef void(*T)(void *)

T不再是一个函数指针了,它代表着一种类型,这种类型可以定义一个指向返回值为void,参数为void *类型的指针

例如:

typedef void(*T)(void *);
T t;
void func(void *);
t=func;

二、typedef void(*T)(非void *指针)

如:typedef void(*task_func)(uint8_t tb_flag, uint8_t *const power_mode);

层层剖析

1.void(*task_func)()

task_func是一个指向返回值为void ,参数为空的类型的函数指针

2. void(*task_func)(uint8_t tb_flag, uint8_t *const power_mode)

task_func是一个指向返回值为void,参数为uint8_t类型的普通变量和uint8_t *类型的指针

3. typedef void(*task_func)(uint8_t tb_flag, uint8_t *const power_mode)

task_func不再是一个函数指针了,它代表着一种类型,这种类型可以定义一个指向返回值为void,参数为uint8_t类型的普通变量和uint8_t *类型的指针

(示例):

typedef void(*task_func)(uint8_t  tb_flag, uint8_t *const power_mode)
task_func func;
static void task_demo1(uint8_t time_flag, uint8_t *const power_mode);
func = task_demo1;

参考文章

地址:https://blog.csdn.net/weixin_40332490/article/details/104609425

你可能感兴趣的:(C语言,c语言)