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

浙江省建设继续教育网站首页做网站先做前台还是后台

浙江省建设继续教育网站首页,做网站先做前台还是后台,德州建网站,重庆巴南区网站开发系列文章目录 文章目录 系列文章目录前言一、回调函数1.1 回调函数基本概念1.2 简单实现 二、代码案例1.代码示例 总结 前言 了解回调函数的基本概念,函数指针的使用、简单信号与槽的实现机制; 一、回调函数 1.1 回调函数基本概念 回调函数就是一个通…

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、回调函数
    • 1.1 回调函数基本概念
    • 1.2 简单实现
  • 二、代码案例
    • 1.代码示例
  • 总结


前言

了解回调函数的基本概念,函数指针的使用、简单信号与槽的实现机制;


一、回调函数

1.1 回调函数基本概念

回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

A “callback” is any function that is called by another function which takes the first function as a parameter。
也就是说,函数 F1 调用函数 F2 的时候,函数 F1 通过参数给 函数 F2 传递了另外一个函数 F3 的指针,在函数 F2 执行的过程中,函数F2 调用了函数 F3,这个动作就叫做回调(Callback),而先被当做指针传入、后面又被回调的函数 F3 就是回调函数。

在这里插入图片描述

1.2 简单实现

创建函数指针,指向指定函数。

void hanshus1()
{cout <<"my hanshus1"<<endl;
}int hanshus2(int)
{cout <<"my hanshus2"<<endl;return 0;
}void (*hanshu1)();
int (*hanshu2)(int);
int main()
{hanshu1 = hanshus1;hanshu1(); // 输出 " my hanshus1 "hanshu2 = hanshus2;hanshu2(2); // 输出 “my hanshus2”
}

二、代码案例

简单实现信号与槽机制:
参考代码:
https://blog.csdn.net/weixin_41374099/article/details/115687655

1.代码示例

代码如下(示例):

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;#define MAX_SLOT_FUNCTION 20  //一个信号最多连接的槽函数数 //一个函数可以被任意多个信号连接//槽函数类型
typedef void (*slot_t)();//信号类型
typedef struct _signal_t 
{slot_t slot[MAX_SLOT_FUNCTION];int count; //槽函数数量
}signal_t;//信号初始化
signal_t* signal();//添加槽函数
void connect(signal_t* _signal, slot_t _slot);//发射信号
void emit(signal_t* _signal);//销毁
void del(signal_t* _signal);//信号初始化
signal_t* signal() 
{signal_t* s = (signal_t*)malloc(sizeof(signal_t));s->count = 0;for (int i = 0; i < MAX_SLOT_FUNCTION; ++i) {s->slot[i] = NULL;}return s;
}//添加槽函数
void connect(signal_t* _signal, slot_t _slot)
{_signal->slot[_signal->count] = _slot;++_signal->count;
}//发射信号
void emit(signal_t* _signal) 
{for (int i = 0; i < _signal->count; ++i){slot_t  func = _signal->slot[i];if (func != NULL) // {func();}}
}//销毁
void del(signal_t* _signal) {for (int i = 0; i < _signal->count; ++i){_signal->slot[i] = NULL;}_signal->count = 0;free(_signal);
}//准备几个槽函数!!!
void setup()
{static int i = 0;printf("setup > 我被点击了%d次,啊啊啊啊\n", ++i);
}void draw() 
{static int i = 0;printf("draw > 我被点击了%d次,啊啊啊啊\n", ++i);
}void loop()
{static int i = 0;printf("loop > 我被点击了%d次,啊啊啊啊\n", ++i);
}void test() 
{//自定义信号signal_t* clicked = signal();signal_t* moved = signal();connect(clicked, setup);connect(clicked, draw);connect(clicked, loop);connect(moved, setup);connect(moved, draw);//发射信号printf("---------------------------------------\n");emit(clicked);emit(clicked);printf("---------------------------------------\n");emit(moved);emit(moved);emit(moved);printf("---------------------------------------\n");emit(clicked);emit(clicked);emit(clicked);printf("---------------------------------------\n");}
int main()
{test();return 0;
}

运行截图:
在这里插入图片描述


总结

  • 回调函数和普通函数的区别;
  • 函数指针的使用
  • 信号与槽的机制
http://www.yayakq.cn/news/309326/

相关文章:

  • 上海注册公司哪里政策好郑州技术支持seo
  • 深圳网站建设 设计卓越迈长沙网站设计哪家专业
  • 建站工作室做彩票网站服务器
  • 且未县建设局网站为什么做电影网站没有流量
  • 企业网站开发价用网址进入的游戏
  • 男女做暖暖到网站wordpress表单文件上传
  • 网站站点建设分为好看的广告设计图片
  • 怎么将公司网站设成首页广州好的网站设计公司
  • 免费wap自助建站系统揭阳网站制作方案定制
  • 网站整改建设安全设备方案网站服务器空间租用
  • 黑色网站设计网站建设和实现论文
  • 网站 需求如何做一个微信公众号
  • 网站开发多语言买域名网站
  • 网站构建工具手机 wordpress html5
  • 从信息化建设办公室网站经营性质的网站
  • 文昌网站建设 myvodo网站是什么软件
  • 做地方网站论坛赚钱网站群管理
  • asp.net网站本机访问慢网站规划与网页设计案例
  • 中国视觉设计网站系统定制开发
  • 网站建设与管理怎么样聊城做网站公司
  • 安徽金路建设集团有限公司网站手表网站官网
  • 腾讯云如何建设网站首页整个网站的关键词
  • wordpress企业站模板软件定制开发如何报价
  • 互联网门户网站建设管理 总结网站开发系统设计怎么写
  • 大连城乡建设网站商业网站开发 流程
  • 南通网站建设推广wordpress网站换字体
  • 网站设置了字体为黑体怎么改字体南宁网站建设免费推广
  • 建立网站对吗做网站打开图片慢
  • 怎么发布php网站智慧团建登录官网
  • 哪些网站可以做调查问卷十大最佳摄影网站