【发布时间】:2011-10-31 16:30:37
【问题描述】:
假设我有这个功能:
int func2() {
printf("func2\n");
return 0;
}
现在我声明一个指针:
int (*fp)(double);
这应该指向一个接受double 参数并返回int 的函数。
func2 没有任何论据,但是当我写的时候:
fp = func2;
fp(2);
(2 只是一个任意数字),func2` 被正确调用。
这是为什么呢?我为函数指针声明的参数数量没有意义吗?
【问题讨论】:
-
简短的回答是“声明一个没有参数的函数......然后故意传递一个参数......这是错误的”。
标签: c function-pointers calling-convention