当前位置: 首页 > news >正文

Delphi 12.3 函数指针(函数可以当参数)

首先学习: 指向非对象(一般的)函数/过程的函数指针

Pascal 中的过程类型与C语言中的函数指针相似,为了统一说法,以下称函数指针。函数指针的声明只需要参数列表;如果是函数,再加个返回值。例如声明一个过程类型,该类型带一个通过引用传递的整型参数:

type 
  IntProc = procedure (var Num: Integer);

这个过程类型与任何参数完全相同的例程兼容,即用它声明的变量,可以指向任何此类函数,并通过其进行函数的调用。下面是一个兼容例程:

procedure DoubleTheValue (var Value: Integer);
begin
Value := Value * 2;
end;

函数指针能用于两种不同的目的:声明函数指针类型的变量;或者把函数指针作为参数传递给另一例程。利用上面给定的类型和过程声明,你可以写出下面的代码:

var 
  IP: IntProc; 
  X: Integer; 
begin 
  IP := DoubleTheValue; 
  X := 5; 
  IP (X); 
end;

虽然这种调用方法比直接调用麻烦了,那么我们为什么要用这种方式呢?

(1)因为在某些情况下,调用什么样的函数需要在实际中(运行时)决定,你可以根据条件来判断,实现用同一个表达,调用不同的函数,很是灵活.

(2)利用函数指针我们可以实现委托,委托在.NEt中被发挥的淋漓尽致,但Delphi同样能实现

(3)实现回调机制

函数指针很有用啊,是高级程序员的必修。

例子

<

相关文章:

  • 7.1 线性代数进行图像处理
  • 【博资考4】网安学院-硕转博考试内容
  • 判断奇数偶数
  • Composer如何通过GitHub Personal Access Token安装私有包:完整教程
  • next.js-学习3
  • 【Multipath网络层协议】MPTCP工作原理
  • 【项目管理】基于 C 语言的 QQ 聊天室实现(TCP + 多线程 + SQLite3)
  • Hadoop完全分布式安装配置
  • Rider 安装包 绿色版 Win/Mac/Linux 适合.NET和游戏开发者使用 2025全栈开发终极指南:从零配置到企业级实战
  • 面向对象基础
  • 本地搭建dify结合ollama+deepseek方法详解
  • 2025最新智能优化算法:人工旅鼠算法(Artificial Lemming Algorithm, ALA)求解23个经典函数测试集,MATLAB
  • Spring原理
  • Android 布局系列(四):ConstraintLayout 使用指南
  • 毕业项目推荐:基于yolov8/yolo11的野生菌菇检测识别系统(python+卷积神经网络)
  • fastchat 支持llama3 harmbench PAIR攻击支持 llama3
  • SpringBoot + vue 管理系统
  • 零基础学习OpenGL(一)创建一个窗口
  • JAVA面试_进阶部分_23种设计模式总结
  • PhpStorm 绿色版 安装包 Win/Mac/Linux 商业的PHP集成开发环境 2025全栈开发终极指南:从零配置到企业级实战
  • 太原cms建站模板/精准客源app
  • 有中文网站 怎么做英文网站/微博推广平台
  • 网站开发有哪些服务/长沙seo顾问
  • 网络管理系统平台/青岛seo关键词优化排名
  • 家具外贸网站/个人网页制作成品欣赏
  • 宁波外贸网站建设/免费舆情监测平台