type Func = function(X: Integer): Integer;
var F: Func; P: Pointer; N: Integer;
F := Func(P); { Assign procedural value in P to F }
Func(P) := F; { Assign procedural value in F to P }
@F := P; { Assign pointer value in P to F }
P := @F; { Assign pointer value in F to P }
N := F(N); { Call function via F }
N := Func(P)(N); { Call function via P }
var F: Func; P: Pointer; N: Integer;
F := Func(P); { Assign procedural value in P to F }
Func(P) := F; { Assign procedural value in F to P }
@F := P; { Assign pointer value in P to F }
P := @F; { Assign pointer value in F to P }
N := F(N); { Call function via F }
N := Func(P)(N); { Call function via P }
解决方案 »
- delphi2007注册问题
- idUDP做点对点,穿透NAT问题
- 紧急求助:strtodate转换后的格式以及日期之间的运算问题。
- 多个进程访问数据库时的缓存问题,ADO。
- 菜鸟请教DBGrid的问题.
- 如何用全局钩子捕获任何窗口的创建信息?劳驾csdn上的各位大侠班帮帮忙。
- 请问如何让Erwin正常处理中文?十分感谢
- 送分100分:取STRING变量的字符个数。
- 我想壮WIN2000,大家能不能谈经验
- 改变 Stringgrid 中被修改字体的颜色
- [Teechart醒目,在线!!]请问如何更改右边的标示内容
- Delphi编译提示[fatal error]file not found:'ExceptionLog.dcu'
var F: Func; // F是一个函数指针
P: Pointer; // void指针
N: Integer;
F := Func(P); { Assign procedural value in P to F } 使F指向P指向的地址p指向某个函数的入口地址 经过类型强行转换
Func(P) := F; { Assign procedural value in F to P } 使P指向F指向的地址p指向某个函数的入口地址 经过类型强行转换
@F := P; { Assign pointer value in P to F } // 这两个不太清楚 待会去查查
P := @F; { Assign pointer value in F to P }
N := F(N); { Call function via F } F指向某个函数入口地址 就相当于普通调用 <其对应的函数一样>
N := Func(P)(N); { Call function via P } P也指向F所指向的函数入口地址 不过由于是VOID型 所以要用Func类型转换主要 是 VOID指针、函数指针,类型匹配,类型转换。。