关于函数指针的调用具体过程
请教大家一个函数指针的问题:
首先请大家看看下面一段简单的代码:
----------------------------------------------
#include<stdio.h>
int Function(int Num);
int
main(void)
{
int (*P_Fun)(int) = &Function;
int a;
a = Function(25);
printf("%d\n", a);
a = (*P_Fun)(25);
printf("%d\n", a);
a = P_Fun(25);
printf("%d\n", a);
return 0;
}
//...
int Function(int Num)
{
int result;
result = Num * 2;
return result;
}
-----------------------------------------
打印了3个的值是一样的。
我的问题是:1.为什么a = (*P_Fun)(25);和a = P_Fun(25);结果一样?前面的间接操作符号‘*’可
以省略,那么编译器的操作过程到底对(*P_Fun)(25);和P_Fun(25);怎么样了?
2.函数指针的执行调用具体过程和一般的函数的调用过程有什么区别,有什么相同?