如何在 c 中使用带参数的函数指针?
How can you use a function pointer with argument in c?
如何使用这个函数指针声明?
int (* get_function(char c)) (int, int);
我有三个函数 int function_a(int a, int b)
、int function_b(int a, int b)
和 int function_c(int a, int b)
。我想使用上面的函数指针根据 c
.
有条件地调用我的函数之一
这是一个例子:
#include <stdio.h>
int function_a(int a, int b)
{
printf("Inside function_a: %d %d\n", a, b);
return a+b;
}
int function_b(int a, int b)
{
printf("Inside function_b: %d %d\n", a, b);
return a+b;
}
int function_c(int a, int b)
{
printf("Inside function_c: %d %d\n", a, b);
return a+b;
}
int function_whatever(int a, int b)
{
printf("Inside function_whatever: %d %d\n", a, b);
return a+b;
}
int (* get_function(char c)) (int, int)
{
switch(c)
{
case 'A':
return function_a;
case 'B':
return function_b;
case 'C':
return function_c;
}
return function_whatever;
}
int main(void) {
get_function('B')(3, 5);
return 0;
}
get_function('B')
returns 指向 function_b
的函数指针并且 get_function('B')(3, 5);
也调用该函数。
如何使用这个函数指针声明?
int (* get_function(char c)) (int, int);
我有三个函数 int function_a(int a, int b)
、int function_b(int a, int b)
和 int function_c(int a, int b)
。我想使用上面的函数指针根据 c
.
这是一个例子:
#include <stdio.h>
int function_a(int a, int b)
{
printf("Inside function_a: %d %d\n", a, b);
return a+b;
}
int function_b(int a, int b)
{
printf("Inside function_b: %d %d\n", a, b);
return a+b;
}
int function_c(int a, int b)
{
printf("Inside function_c: %d %d\n", a, b);
return a+b;
}
int function_whatever(int a, int b)
{
printf("Inside function_whatever: %d %d\n", a, b);
return a+b;
}
int (* get_function(char c)) (int, int)
{
switch(c)
{
case 'A':
return function_a;
case 'B':
return function_b;
case 'C':
return function_c;
}
return function_whatever;
}
int main(void) {
get_function('B')(3, 5);
return 0;
}
get_function('B')
returns 指向 function_b
的函数指针并且 get_function('B')(3, 5);
也调用该函数。