C语言学习笔记10-02回调函数 基于acllib图形库展示

C语言-回调函数

属于函数指针的高级应用。

首先,关于ACLlib图形库介绍

acllib函数库包含一个.c文件和一个.h文件,可以从浙江大学翁恺教授的github(电脑登录)开源资源中下载获取或者加入大学慕课下载附件。它是基于win32API开发的,其中的函数可以实现简单的图形界面操作。
在这里插入图片描述

以devC为例,创建windows application项目,添加acllib的头文件和源文件。然后在连接器中添加以下8个对象:
在这里插入图片描述

【运行时可能报错 undefined reference to TransparentBlt 解决方法:
(1)注释掉高亮行 ——

在这里插入图片描述

(2)或者加上以下附加编译选项 —— 】

在这里插入图片描述

细节参考:ACLlib库的使用-基于DevC++
或者:acllib下载使用

VS创建项目可以参考这位兄弟的:VS使用acllib图形库

回调函数

函数指针与回调函数参考内容:
https://www.runoob.com/cprogramming/c-fun-pointer-callback.html

【指针函数是返回类型是指针的函数,函数指针则是指向函数的指针变量。】
函数指针的定义:  类型说明符 (*函数名) (参数)  
例如:int (*P) (int x);

利用typedef定义回调函数:typedef给函数定义别名,分析回调函数定义时,去掉typedef和函数别名就可以看出原变量类型 ——

头文件中:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

源文件中:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如上图中,typedef void( * MouseEventCallback) (int x, int y, int button, int event); 回调函数类型是 void( * ) (int , int , int , int) 。总之,回调函数是C语言对函数指针的高级应用。

C回调函数与java回调函数

Java回调函数的四种实现方法

运用acllib库的回调函数实现图形交互消息(消息循环) ——

部分运行结果展示:

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值