float Aco(char** c, int b, char* a) { ...... } float Ma(char** c, int b, char* a) { ...... }
float(*pointer)(char** c, int b, char* a);
?????Funk(int size)
{
switch (startingLetter)
{
case 'a':
return(&Aco);
break;
case 'b':
return(&Ma);
break;
default:
return NULL;
break;
}
}
如果我希望“Funk”返回 NULL 或返回指向函数 Ma/Aco 的指针,我需要写什么而不是 ?????
?
最佳答案
这应该有帮助:
#include <stdio.h>
typedef double (*div_type)(int, int);
double div(int a, int b) {
return ((double)a / (double)b);
}
div_type div_fun() {
return (div);
// or: return (NULL);
}
int main () {
div_type fun_ptr = div_fun();
if (fun_ptr != NULL) {
printf("%f\n", fun_ptr(4, 2));
} else {
puts("Undefined");
}
return (0);
}
这将产生
% ./a.out
2.000000
关于c - 如何返回c中函数的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34363627/