【发布时间】:2016-01-11 10:29:33
【问题描述】:
我尝试了这些代码,但参数 a 和 b 的范围存在一些问题。请有人帮助我。
#include<conio.h>
#include<stdio.h>
int add(int x, int y) {
return (x + y);
}
void passptr(int( * fp)(int a, int b)) {
int result = ( * fp)(a, b);
printf("%d", result);
}
int main() {
add(3, 5);
passptr( & add);
getch();
return 0;
}
【问题讨论】:
-
没有
a和b参数被传递。您正在传递一个函数指针。 -
编译器警告是有充分理由的!
-
您混淆了“命名函数”和“调用函数”的概念。
-
那是纯C。不要为不相关的语言添加标签。
-
参数类型中的名称仅供人类阅读,编译器会忽略 - 您的原型等效于
void passptr(int (*fp)(int, int))。
标签: c function-pointers