如何用c语言实现这样一个功能,即当我执行一个函数完毕后,在该函数的末尾,将该函数的指针赋值给一个我创建的函数指针
时间: 2024-10-21 21:04:40 浏览: 21
在C语言中,你可以通过函数指针来实现在某个函数执行结束后返回该函数自身指针的功能。下面是一个简单的例子:
首先,假设我们有一个基础函数模板`do_something`,它接受一个函数指针作为参数,并在完成后返回自身的指针:
```c
#include <stdio.h>
typedef void (*func_ptr)(void); // 定义函数指针类型
// 基础函数,接收并返回自身指针
func_ptr do_something(void (*fn)(void)) {
printf("Executing function...\n");
fn(); // 调用传入的函数
return (func_ptr)fn; // 返回函数指针
}
// 示例函数,用于演示
void example_func() {
printf("This is an example function.\n");
}
int main() {
func_ptr my_func = NULL;
// 将example_func的地址传递给do_something
my_func = do_something(example_func);
// 现在my_func指向了example_func
if (my_func != NULL) {
my_func(); // 执行返回的函数指针
}
return 0;
}
```
在这个例子中,当你运行`main`函数时,`do_something`会先打印"Executing function...",然后执行`example_func`,最后返回`example_func`的指针。这时,`my_func`就会指向`example_func`。
阅读全文