Day8 函数指针做函数参数
课堂笔记
课程回顾
数组指针语法梳理
//定义一个指针数组类型typedef int (*PTypeArray)[10];//定义一个指向数组的指针PTypeArray mArray;int a[10] = {0};//对数组取地址,得到指向数组的指针mArray = &a;//这样就可以修改数组内的元素了(*mArray)[0] = 20;
int (*MyPointer)[10];//变量,编译器会分配内存MyPoint = &a;(*MyPointer)[0] = 40;//不需要定义数据类型就可以定义指向数组的指针
函数指针语法梳理
int S (int a,int b){return a+b;}
//定义一个函数类型typedef int (MyFuncPtr)(int a,int b);//定义一个指针,指针指向特性类型的函数MyFuncPtr *funcPtr = NULL;//取函数入口地址并赋值funcPtr = ∑//函数指针调用函数funcPtr(3,4);//间接调用
//定义一个函数指针类型typedef int (*MyFuncPtr)(int a,int b);//定义一个指针,指针指向特定类型的函数MyFuncPtr funcPtr = NULL;//取函数入口地址并赋值funcPtr = ∑//函数指针调用函数funcPtr(3,4);//间接调用
函数指针做函数参数思想
//定义数据类型,函数指针数据类型typedef int (*FuncPtr)(int a,int b);//函数指针作为函数参数int mainOp(FuncPtr funcPtr);
这样实现了多态的扩充效果,将多个函数指针放到一个数组中,就类似于一个虚函数表了.
函数指针正确调用案例
typedef int (*SQRTPROC)(int,int)//定义一个函数指针类型SQRTPROC pFunction;//定义一个函数指针HINSTANCE hInstance;//声明一个句柄hInstance = ::LoadLibrary("DLL文件路径");//获取句柄的实例,也就是DLL的实例//获取方法,读取函数的入口地址,VERIFY检测表达式是否为空VERIFY(pFunction = (SQRTPROC*)::GetProcAddress(hInstance,"SqartRoot"));
C动态库升级为框架
基本需求
环境搭建
动态库中添加回调函数
回调函数缓存到动态库
C++基础课程知识点梳理
Day8 函数指针做函数参数的更多相关文章
- 函数指针做函数参数,其中有typedef的相关,感觉这是构成大河的小溪
#include<stdio.h> #include<stdlib.h> #include<string.h> int Funcadd(int a, int b) ...
- go语言基础之数组指针做函数参数
1.数组指针做函数参数 示例: package main //必须有个main包 import "fmt" //p指向实现数组a,它是指向数组,它是数组指针 //*p代表指针所指向 ...
- go语言基础之指针做函数参数用地址传递
1.指针做函数参数 示例: package main //必须有个main包 import "fmt" func swap(p1, p2 *int) { *p1, *p2 = *p ...
- go语言基础之指针做函数参数
1.指针做函数参数 示例: package main //必须有个main包 import "fmt" func swap(a, b int) { a, b = b, a fmt. ...
- Delphi 函数指针(函数可以当参数)
首先学习: 指向非对象(一般的)函数/过程的函数指针 Pascal 中的过程类型与C语言中的函数指针相似,为了统一说法,以下称函数指针.函数指针的声明只需要参数列表:如果是函数,再加个返回值.例如声明 ...
- C++中的函数指针和函数对象总结
篇一.函数指针函数指针:是指向函数的指针变量,在C编译时,每一个函数都有一个入口地址,那么这个指向这个函数的函数指针便指向这个地址.函数指针的用途是很大的,主要有两个作用:用作调用函数和做函数的参数. ...
- typedef void(*Fun) (void)是什么意思 函数指针(回调函数) 和函数对象总结
https://blog.csdn.net/FreeApe/article/details/49124043 bool (*pf)(const string &,const string &a ...
- C#委托与C语言函数指针及函数指针数组
C#委托与C语言函数指针及函数指针数组 在使用C#时总会为委托而感到疑惑,但现在总新温习了一遍C语言后,才真正理解的委托. 其实委托就类似于C/C++里的函数指针,在函数传参时传递的是函数指针,在调用 ...
- c++入门之函数指针和函数对象
函数指针可以方便我们调用函数,但采用函数对象,更能体现c++面向对象的程序特性.函数对象的本质:()运算符的重载.我们通过一段代码来感受函数指针和函数对象的使用: int AddFunc(int a, ...
随机推荐
- HashMap实现原理(jdk1.7/jdk1.8)
HashMap的底层实现: 1.简单回答 JDK1.7:HashMap的底层实现是:数组+链表 JDK1.8:HashMap的底层实现是:数组+链表/红黑树 为什么要红黑树? 红黑树:一个 ...
- hdu 6034 B - Balala Power! 贪心
B - Balala Power! 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6034 题面描述 Talented Mr.Tang has n st ...
- web的几种返回顶部
回到顶部backtoTop 滚动回到顶部 jquery/js效果还不错!支持现代浏览器包括 ie6.position: absolute;和fixed.两种方法! 一,jQuery方法的backtoT ...
- JAVA自学笔记26
JAVA自学笔记26 1.网络编程 1)用来实现网络互联的不同计算机上运行的程序可以进行数据交换 2)网络模型一般泛指 OSI:(Open System Interconnection)开放系统互联参 ...
- Filter(1)—基础知识
一.过滤器(Filter) 1.概述: JavaWeb的一个重要组件,可以对请求和响应拦截 Filter的基本功能是对Servlet容器调用Servlet过程中进行拦截,从而在Servlet进行响应处 ...
- antv g6
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- javaScript系列 [02]-javaScript对象探析
[02]-javaScript对象探析 题记:多年前,以非常偶然的方式关注了微信公众号“面向对象”,本以为这个公众号主要以分享面向对象编程的干货为主,不料其乃实实在在的猿圈相亲平台.通过查看公开资料, ...
- linux go环境安装和基本项目结构
最近项目中要用到Go语言,所以简单总结一下安装和配置,Go这个语言本身就限定了很多规范,比如项目设置,编程风格等,开发中就不需要再因为各种规范问题纠结了,直接用官方规定的能避免很多坑,下面直接切正题, ...
- 2-08. 用扑克牌计算24点(25) (ZJU_PAT 数学 枚举)
题目链接:http://pat.zju.edu.cn/contests/ds/2-08 一副扑克牌的每张牌表示一个数(J.Q.K分别表示11.12.13,两个司令都表示6).任取4张牌.即得到4个1~ ...
- Mybatis中使用集合、数组
一.简述 本文讲Mybatis中如何将传入参数为数组或者集合对象,进行遍历,组合Where条件中如in条件等内容. 有3种情况: 如果传入的是单参数且参数类型是一个List的时候,collection ...