admin 管理员组

文章数量: 1087139


2023年12月24日发(作者:float长度多少位)

在 C 语言中,可以将函数指针作为参数传递给另一个函数。这是一种非常强大的技术,因为它允许你在运行时指定要调用的函数。

要将函数指针作为参数传递给另一个函数,你需要先声明一个函数指针类型。这可以通过使用 `typedef` 关键字来完成,如下所示:

```c

typedef void (*function_pointer)(int);

```

这将创建一个名为 `function_pointer` 的函数指针类型,它指向一个接受整数作为参数并返回无返回值的函数。

接下来,你可以声明一个函数,它接受一个函数指针作为参数。这可以通过使用

`function_pointer` 类型作为函数参数类型来完成,如下所示:

```c

void call_function(function_pointer fp) {

fp(10);

}

```

这个函数接受一个 `function_pointer` 类型的参数,并将整数 10 作为参数传递给它。

最后,你可以通过将函数指针作为参数传递给 `call_function()` 函数来调用它。这可以通过使用取地址运算符 (&) 来完成,如下所示:

```c

void my_function(int x) {

printf("my_function was called with argument %dn", x);

}

int main() {

void (*fp)(int) = my_function;

call_function(fp);

return 0;

}

```

这个程序将输出以下内容:

```

my_function was called with argument 10

```

这表明 `my_function()` 函数已经被调用,并且整数 10 已经作为参数传递给了它。

传递函数指针是一种非常强大的技术,因为它允许你在运行时指定要调用的函数。这在许多情况下都很有用,例如:

* 创建回调函数。

* 实现多态性。

* 创建插件系统。


本文标签: 函数 作为 类型 有用 函数指针