函数指针问题(0分)

  • 主题发起人 主题发起人 awfigsk
  • 开始时间 开始时间
A

awfigsk

Unregistered / Unconfirmed
GUEST, unregistred user!
type func=function(x:integer):integer;
var
f:func;
p:pointer;
N:integer;
下面这样赋值是什么意思?
f:=func(p)
//将P指针转换为FUNC型,再将它赋给f?
func(p):=f
//是不是将P转换成func型,再将F的指针赋给P?
//不要用@取地址吗?(func(p)=@f)
是这样理解吗?还请各位高手指点。谢谢!
 
我的理解,函数类型本身是一个指针,不知道对不对。
 
// 函数类型本身是一个指针
应该是这样的没错。指向对应代码的首地址。

//不要用@取地址吗?(func(p)=@f)
你要是取了地址,你看和前一句 f:=func(p)
对称吗?:)

 
f := func(p)
//大致意思是func运算的结果返回给f
//但是
func(p):= f
//就没见过了,好像编译都通不过吧

p := @f
//只要这样就可以把函数f的地址赋给p


//如果P是一个方法(或事件)类型的变量的话,如
var
p: TNotifyEvent;

//则方法之间的赋值就更简单
P := OnClick;
P := OnFormShow;
//等等
 
接受答案了.
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部