C语言注册回调实例
来源:互联网 发布:宝宝照片涂鸦软件 编辑:程序博客网 时间:2024/06/07 02:13
前言:在其他的帖子里面写过C++的注册回调实例,今天再把c的注册回调写进去,注册回调在实际的项目过程中有很大的用处
注册回调函数hpp文件:
#ifndef __API_H_#define __API_H_typedef enum{STUDENT_INFO,TEACHER_INFO,}StructType;typedef void(*GuiCallBack)(void *, StructType);typedef struct{char name[100];int age;int grade;}struStudent;typedef struct{char name[100];int age;}struTeacher;static GuiCallBack guiCallBack = (GuiCallBack)0;void onInit(GuiCallBack pCallBack){if (guiCallBack == nullptr){guiCallBack = pCallBack;}}void SetStudentinfo(){struStudent student;//student.name[100] = "DF";strcpy_s(student.name, "DF");student.age = 27;student.grade = 5;guiCallBack(&student, STUDENT_INFO);}void SetTeacherInfo(){struTeacher teacher;//teacher.name[100] = 'ZH';strcpy_s(teacher.name,"ZH");teacher.age = 33;guiCallBack(&teacher,TEACHER_INFO);}#endif
主函数调用实例:
// RegisterCallback.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"#include"TestCall.hpp"#include"API.hpp"using namespace std;void onGuiCallBack(void *data, StructType type){switch ( type){case STUDENT_INFO:{struStudent *info = (struStudent *)data;cout <<"studentinfo: "<< info->name << " " << info->age << " " << info->grade << endl;}break;case TEACHER_INFO:{struTeacher *info = (struTeacher *)data;cout << "TeachInfo:" << info->name << " " << info->age << endl;}break;default:break;}}int _tmain(int argc, _TCHAR* argv[]){onInit(onGuiCallBack);SetStudentinfo();SetTeacherInfo();system("pause");return 0;}
阅读全文
0 0
- C语言注册回调实例
- C语言实现注册
- C语言注册登录系统
- C语言函数注册,回调
- 【C++】注册与回调
- 函数注册与回调实例
- C语言中的注册回调函数_onexit()
- C语言回调函数实例
- C语言回调函数实例
- C语言回调函数实例
- C语言中的回调函数实例
- C语言中的回调函数实例
- C语言中的回调函数实例
- C语言中的回调函数实例
- C语言中的回调函数实例
- C语言回调函数(实例)
- C语言实例程序
- C语言实例下载
- sanlyShi的前端之路三:css中position,margin、padding细节理解
- ROS机器人操作系统入门(转载整理于TOP LIU)
- $(function(){})和$(document).ready(function(){}) document.ready和onload的区别
- 再温暖的鸡汤不如一场殊死的战争,诸神之战四赛区冠军出炉!
- ecshop {insert} 标签的用法
- C语言注册回调实例
- 东方百货集团荆门东方百货连锁超市
- POJ 2533Longest Ordered Subsequence(最长上升子序列)
- MySQL5.6解压版出错Access denied for user 'root'@'localhost'
- Cause: java.sql.SQLException: Data truncated for column 'LOAN_SUM' at row 1
- 利用C实现聊天室搭建 附带客户端与服务器的代码
- log4j 配置全面解析
- EasyStream系列2之rtmp转rtsp
- C#的MVC架构