gpt4 book ai didi

c - 如何在C中使用函数指针? (没有 C++)

转载 作者:行者123 更新时间:2023-12-04 09:11:06 24 4
gpt4 key购买 nike

正如标题所说,如何在C中使用函数的指针?我可以只获取函数名称的地址并将其传递给另一个函数吗?然后取消引用并调用它?

非常感谢。

最佳答案

如果您知道函数地址,那么是的。例如:

int add(int a, int b)
{
return a + b;
}

int sub(int a, int b)
{
return a - b;
}

int operation(int (*op)(int, int), int a, int b)
{
return op(a, b);
}

然后就这样调用它:

printf("%d\n", operation(&add, 5, 3)); // 8
printf("%d\n", operation(&sub, 5, 3)); // 2

你甚至可以做一些数组技巧:

int op = 0;
int (*my_pointer[2])(int, int) =
{
add, // op = 0 for add
sub // op = 1 for sub
};
printf("%d\n", my_pointer[op](8, 2)); // 10

关于c - 如何在C中使用函数指针? (没有 C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13945566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com