原文

首先它是一个指针,一个指向函数的指针,在内存空间中存放的是函数的地址;

int Add(int x,int y)
{
return x+y;
}
int main()
{
printf("%p\n",&Add);//打印一下函数Add()的地址
printf("%p\n",Add);//数组名等于数组首元素地址,那函数名是等于函数地址吗? ->等于!
return 0;
}
void Add(int x, int y){
return x+y;}
int main(){
int (*pf)(int,int)=&Add;
int ret=(*pf)(3,5);

处理底层硬件和操作系统功能:在底层编程中,函数指针常常用于与硬件和操作系统功能进行交互。通过将函数指针传递给特定的底层接口,可以让应用程序与硬件或操作系统进行通信和控制

问题,需要用把函数Hal_Wifi_SendByte放到涂鸦云SDK  protocol.c文件的usart_transmit_output函数里面去?

在protocol.h文件下自定一个函数指针类型pUart_transmit_output

在protocol.c定义一个函数指针变量

pUart_transmit_output    Uart_transmit_outputCBS;

修改protocol.c文件下uart_transmit_output函数

在protocol.c文件下编写Uart_transmit_outputCBS函数指针的注册函数

在protocol.h文件下声明下Uart_transmit_outputCBSRegister函数

达到目标:

Protocol.c文件下,调用uart_transmit_outputCBS函数指针时,等同于调用hal_usart.c的hal_Wifi_SendByte函数

客户不修改SDK代码,SDK也能调用客户工程下.c文件里的函数了。

函数指针 int (*add)( )的更多相关文章

  1. selector函数指针回调机制

    selector可以叫做选择器,其实指的就是对象的方法,也可以理解为C语言里面的函数指针,在面向对象里面的对应概念. [self performSelector:@selector(Hidden) w ...

  2. c函数指针和指针函数如何使用何定义;如何调用使用

    #include <stdio.h> int * sum(int x); //声明一个 指针函数 返回类型位一个指针变量 可以通过*p来获取值 int (*pfun)(int,int);/ ...

  3. C语言函数指针的用法

    函数指针是一种在C.C++.D语言.其他类 C 语言和Fortran 2003中的指针.函数指针可以像一般函数一样,用于调用函数.传递参数.在如 C 这样的语言中,通过提供一个简单的选取.执行函数的方 ...

  4. C语言函数指针基础

    本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础.如果你不讨厌事无巨细,请尽情阅读吧. 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具.本文将从C ...

  5. typedef函数指针使用方法

    1.简单的函数指针的应用 形式1:返回类型(*函数名)(參数表) char (*pFun)(int); char glFun(int a){ return;} void main() { pFun = ...

  6. C++学习笔记(八):函数重载、函数指针和函数对象

    函数重载 函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数.重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于 ...

  7. 小猪猪C++笔记基础篇(六)参数传递、函数重载、函数指针、调试帮助

    小猪猪C++笔记基础篇(六) ————参数传递.函数重载.函数指针.调试帮助 关键词:参数传递.函数重载.函数指针.调试帮助 因为一些事情以及自己的懒惰,大概有一个星期没有继续读书了,已经不行了,赶紧 ...

  8. C++------------typedef 函数指针类型定义

    摘要bycrazyhacking:        typedef 是定义了一种"函数指针"类型,可以再声明很多变量.函数指针的定义是定义了一个变量. int max(int x,i ...

  9. c++入门之函数指针和函数对象

    函数指针可以方便我们调用函数,但采用函数对象,更能体现c++面向对象的程序特性.函数对象的本质:()运算符的重载.我们通过一段代码来感受函数指针和函数对象的使用: int AddFunc(int a, ...

  10. c++学习之初话 函数指针和函数对象 的因缘

    函数指针可以方便我们调用函数,但采用函数对象,更能体现c++面向对象的程序特性. 函数对象的本质:()运算符的重载.我们通过一段代码来感受函数指针和函数对象的使用: int AddFunc(int a ...

随机推荐

  1. python实现zip分卷压缩与解压

    1. python实现zip分卷压缩 WinHex 开始16进制一个一个文件对比 WinRar 创建的分卷压缩和单个 zip 文件的差异. 如果想把单个大文件 test.zip -> 分卷文件  ...

  2. 知识蒸馏相关技术【模型蒸馏、数据蒸馏】以ERNIE-Tiny为例

    1.任务简介 基于ERNIE预训练模型效果上达到业界领先,但是由于模型比较大,预测性能可能无法满足上线需求. 直接使用ERNIE-Tiny系列轻量模型fine-tune,效果可能不够理想.如果采用数据 ...

  3. 5.12 汇编语言:仿写While循环语句

    循环语句(While)一种基本控制结构,它允许程序在条件为真的情况下重复执行一段代码块,直到条件为假为止.循环语句在处理需要重复执行的任务时非常有用,它可以让程序更加高效地处理大量数据或者重复性操作. ...

  4. 掌握C语言文件操作:从入门到精通的完整指南!

    欢迎大家来到贝蒂大讲堂 养成好习惯,先赞后看哦~ 所属专栏:C语言学习 贝蒂的主页:Betty's blog 1. 什么是文件 文件其实是指一组相关数据的有序集合.这个数据集有一个名称,叫做文件名.文 ...

  5. 《Boosting Document-Level Relation Extraction by Mining and Injecting Logical Rules》论文阅读笔记

    代码 原文地址 摘要 文档级关系抽取(DocRE)旨在从文档中抽取出所有实体对的关系.DocRE 面临的一个主要难题是实体对关系之间的复杂依赖性.与大部分隐式地学习强大表示的现有方法不同,最新的 Lo ...

  6. 【JS】强化Promise理解,从零手写属于自己的Promise.all与Promise.race

    壹 ❀ 引 在一个思路搞定三道Promise并发编程题,手摸手教你实现一个Promise限制器一文中,我们在文章结尾留了一个疑问,关于第三题的实现能否解决当每次调用时间都不相等的情况(比如第二次调用要 ...

  7. NC20313 [SDOI2008]仪仗队

    题目链接 题目 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练. 仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队 ...

  8. FireFox 报错Security Connection Failed解决方案

    1.在浏览器中输入:about:config; 2.搜索security.ssl.enable_ocsp_stapling,双击将其修改为FALSE: 3.返回重新访问之前的网站,问题解决

  9. LLaMA 2 - 你所需要的一切资源

    摘录 关于 LLaMA 2 的全部资源,如何去测试.训练并部署它. LLaMA 2 是一个由 Meta 开发的大型语言模型,是 LLaMA 1 的继任者.LLaMA 2 可通过 AWS.Hugging ...

  10. sensitive word 敏感词(脏词) 如何忽略无意义的字符?达到更好的过滤效果?

    忽略字符 说明 我们的敏感词一般都是比较连续的,比如 傻帽 那就有大聪明发现,可以在中间加一些字符,比如[傻!@#$帽]跳过检测,但是骂人等攻击力不减. 那么,如何应对这些类似的场景呢? 我们可以指定 ...