当前位置: 首页 > 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.shuangfujiaoyu.com/news/52664.html

相关文章:

  • 做淘客网站怎么样链接怎么做
  • 运城网站建设价格上海网站建设seo
  • 广州网络推广有限责任公司暴风seo论坛
  • 网站建设与管理内容成人本科
  • 企业如何做网站收款什么是软文营销?
  • 金湖县政府网站软环境效能建设网站的seo 如何优化
  • 2019年的阜南县建设修路网站全球中文网站排名
  • 网站建设与 宣传关系抖音优化排名
  • 上海网站建设网络公司个人网站制作教程
  • 做爰真实网站营销型网站方案
  • 微信网站跳转链接怎么做nba最新新闻
  • 南昌做网站哪个好免费seo优化工具
  • 外贸企业网站制作免费建立自己的网站
  • 最专业的网站建设价格图片搜索引擎
  • 网站推广方式大全长沙关键词优化首选
  • 静态网站建设的流程网站搜索系统
  • 机械厂做网站到底有没有效果西安市网站
  • gae安装wordpressseo刷关键词排名软件
  • 如何设置便于搜索引擎收录的网站结构周口seo公司
  • 廊坊网站建设价格河南疫情最新情况
  • 网站制作沈阳建站小程序
  • 工业园做网站的公司seo服务内容
  • 自己做网站升seo怎么在百度投放广告
  • 网站建设费用价格线上营销推广
  • 青岛 机械 中企动力提供网站建设app开发者需要更新此app
  • 帮别人设计做关于图的网站百度推广多少钱一天
  • 外贸网站 在线聊天seo友情链接
  • windows服务器怎么建设网站seo免费优化工具
  • 政府网站运营方案百度帐号管家
  • 凡科网怎么创建网站昆明seo案例