69,370
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
void (*funP)(int);
void myFun(int x)
{
printf("myFun: %d\n",x);
}
int main()
{
//一般的函数调用
myFun(100);
//myFun与funP的类型关系类似于int 与int *的关系。
funP=&myFun; //<-----------取地址赋值
(*funP)(2003);
funP=myFun;///<-------直接把变量赋值 ????? 这里为什么也可以?????
funP(300);
printf("myFun\t 0x%p=0x%p\n",&myFun,myFun); ////????取地址竟然和 取变量竟然一样??????
return 0;
}
00411455 call @ILT+300(__RTC_CheckEsp) (411131h)
printf("myFun\t 0x%p=0x%p\n",&myFun,myFun); ////????取地址竟然和 取变量竟然一样??????
0041145A mov esi,esp
0041145C push offset myFun (411050h) //是不是一样的,没区别吧??
00411461 push offset myFun (411050h)
00411466 push offset string "myFun\t 0x%p=0x%p\n" (41574Ch)