typedef void* (*func)();怎么用
时间: 2023-05-04 18:06:43 浏览: 178
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 void (*ISR_FUNC_PTR)(void);
这是一个函数指针类型的定义,名字为 ISR_FUNC_PTR,它指向一个没有参数和返回值的函数。在嵌入式系统中,常常用它来定义中断服务函数(ISR, Interrupt Service Routine)的类型。这样定义之后,就可以通过将函数指针指向具体的函数来注册中断服务函数。当中断发生时,处理器会跳转到该函数执行中断处理。
typedef void(*func)(void) 使用例子
这是一个函数指针类型定义,可以用来定义指向某个函数的指针。例如:
```
#include <stdio.h>
void hello() {
printf("Hello, world!\n");
}
void goodbye() {
printf("Goodbye, world!\n");
}
int main() {
func fptr = hello; // 指向 hello 函数的指针
fptr(); // 调用 hello 函数
fptr = goodbye; // 现在指向 goodbye 函数
fptr(); // 调用 goodbye 函数
return 0;
}
```
这段代码会输出:
```
Hello, world!
Goodbye, world!
```
阅读全文