typedef void* (*func)();怎么用
时间: 2023-05-04 11:06:43 浏览: 106
typedef void* (*func)()是一种函数指针类型的定义,它可以用于声明函数指针变量。定义一个func类型的函数指针变量,可以使用以下语法:
func myFunc; // 声明一个名为myFunc的函数指针变量
定义函数指针变量后,需要对它进行赋值,指向一个具体的函数。例如,假设我们有如下的一个函数:
void* myFunction() {
// do something
}
我们可以将它赋值给函数指针变量myFunc:
myFunc = &myFunction;
或者更简洁的写法:
myFunc = myFunction;
然后,可以通过调用该函数指针来执行myFunction函数:
void* result = myFunc();
上述代码会调用myFunction函数并取得其返回结果。需要注意的是,因为函数指针变量的函数原型是void* (*func)(),因此被调用的函数也必须符合这个原型,即返回类型为void*,不带参数。如果被调用的函数具有不同的原型,则会导致编译错误或者运行时错误。
相关问题
typedef int *P_ARR[2]; typedef int (*ARR_P)[2]; typedef void *P_FUNC(int); typedef void (*FUNC_P)(int ); typedef int (*FUNC_P_ARR[2])(int ,int);
这是C语言中的一些类型定义。
`typedef int *P_ARR[2];` 定义了一个名为`P_ARR`的类型,它是一个指向包含两个`int`类型指针的数组的指针类型。
`typedef int (*ARR_P)[2];` 定义了一个名为`ARR_P`的类型,它是一个指向包含两个`int`类型的数组的指针类型。
`typedef void *P_FUNC(int);` 定义了一个名为`P_FUNC`的类型,它是一个以一个`int`类型参数为输入,返回一个`void`类型指针的函数指针类型。
`typedef void (*FUNC_P)(int);` 定义了一个名为`FUNC_P`的类型,它是一个以一个`int`类型参数为输入,返回`void`类型的函数指针类型。
`typedef int (*FUNC_P_ARR[2])(int, int);` 定义了一个名为`FUNC_P_ARR`的类型,它是一个包含两个指向以两个`int`类型参数为输入,返回`int`类型的函数指针的数组。
typedef void (*ISR_FUNC_PTR)(void);
这是一个函数指针类型的定义,名字为 ISR_FUNC_PTR,它指向一个没有参数和返回值的函数。在嵌入式系统中,常常用它来定义中断服务函数(ISR, Interrupt Service Routine)的类型。这样定义之后,就可以通过将函数指针指向具体的函数来注册中断服务函数。当中断发生时,处理器会跳转到该函数执行中断处理。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)