Posted on 2010-05-25 10:49
S.l.e!ep.¢% 阅读(225)
评论(0) 编辑 收藏 引用 所属分类:
C++
#include
<
iostream
>
using
namespace
std;
int
function(
int
x,
int
y)
{
return
x
+
y;
}
void
main()
{
int
(
*
p)(
int
x,
int
y);
int
i;
//
p = (*function);
//
p = function;
i
=
(
*
function)(
1
,
1
);
i
=
function(
1
,
1
);
}
(*函数名) 以前从未试过这种写法,做了下测试
1. 地址是一样的
2. 反汇编的代码也是一样的
19: i=(*function)(1, 1);
00401078 push 1
0040107A push 1
0040107C call @ILT+0(function) (00401005)
00401081 add esp,8
00401084 mov dword ptr [ebp-8],eax
20:
21: i=function(1, 1);
00401087 push 1
00401089 push 1
0040108B call @ILT+0(function) (00401005)
00401090 add esp,8
00401093 mov dword ptr [ebp-8],eax
22: }