最近在使用STM32的hal库进行开发的时候,看到很多库自带的函数有很多是使用__weak修饰的
例如:__weak void function(…)

  1. 第一次看到这种写法,很是好奇,那么这个修饰符的作用是什么呢?其实在英语中,weak的意思就是“虚弱的”,那么这个关键字具体怎么弱了呢?

  2. 其实函数名称前面加上__weak 修饰符,我们一般称这个函数为“弱函数”。
    加上了__weak 修饰符的函数,我们可以在这个文件中重新定义一个同名函数,也就是自己也可以写一个void function(…),如果不加weak,那么肯定是报错的,但是加上weak以后,最终编译器编译的时候,会选择我们自己定义的函数,如果用户没有重新定义这个函数,那么编译器就会执行__weak 声明的函数,并且编译器不会报错。

  3. 所以我们可以在别的地方定义一个相同名字的函数,而不必也尽量不要修改之前的函数。

关于HAL中的__weak详解相关推荐

  1. ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route

    前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path.之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开 ...

  2. Asp.net中GridView使用详解(引)【转】

    Asp.net中GridView使用详解(引) GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList ...

  3. Linux中iptraf命令详解(IP局域网监控工具)

    2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03   作者:佚名    ...

  4. ArcGIS Engine中的Symbols详解

    转自原文 ArcGIS Engine中的Symbols详解 本文由本人翻译ESRI官方帮助文档.尊重劳动成果,转载请注明来源. Symbols ArcObjects用了三种类型的Symbol(符号样式 ...

  5. js路由在php上面使用,React中路由使用详解

    这次给大家带来React中路由使用详解,React中路由使用的注意事项有哪些,下面就是实战案例,一起来看一下. 路由 通过 URL 映射到对应的功能实现,React 的路由使用要先引入 react-r ...

  6. Linux中etc目录详解

    Linux中etc目录详解 /etc目录 包含很多文件.许多网络配置文件也在/etc 中. /etc/rc   or/etc/rc.d   or/etc/rc*.d   启动.或改变运行级时运行的sc ...

  7. java 自定义正则表达式_java中正则表达式实例详解

    Java中正则表达式运用实例(参看java中正则表达式运用详解): 测试代码 package test; /** * 在String的matches()方法,split()方法中使用正则表达式. * ...

  8. numpy中reshape方法详解

    numpy中reshape方法详解_zhanggonglalala的博客-CSDN博客_reshape

  9. JavaScript中getBoundingClientRect()方法详解

    JavaScript中getBoundingClientRect()方法详解 getBoundingClientRect() 这个方法返回一个矩形对象,包含四个属性:left.top.right和bo ...

最新文章

  1. 2021年大数据Hadoop(二十五):YARN通俗介绍和基本架构
  2. react中纯函数_如何在纯React中创建电子邮件芯片
  3. java.util.concurrent介绍
  4. Python中如何查看模块的源码内容
  5. 顺德机器人应用与维修专业收入_保定万维科技技校专业课程巡礼——计算机应用与维修...
  6. html5遍历集合数据,HTMLCollection集合能打印出来值,但是无法获取每一个值。
  7. 5、SpringBoot+MyBaits+Maven+Idea+pagehelper分页插件
  8. 高通Camera驱动配置参考:dtsi、代码
  9. 维修 空调 碰上 骗子
  10. 垃圾回收概述,算法及垃圾回收器
  11. FFmpeg编译出来的库太大?试试这几招
  12. HTML table 标签边框问题(隐藏表格边框、单元格边框等)
  13. mysql数据库名词术语_【千寻】MySQL数据库名词注释(持续更新)
  14. Mac anaconda相关
  15. JavaWeb实现网上商城
  16. 创建账户类Account
  17. 某K字头运动软件逆向分析-登录时非法的请求
  18. python语言采用严格的缩进来表明_在日本人生活中“木”文化极其重要。()
  19. 电路分析中的函数介绍
  20. 自如员工被控窃取公司信息七万条 涉侵犯公民信息罪

热门文章

  1. 一不小心,登上支付宝开发者社区热文榜单Top3
  2. My97DatePicker日期插件WdatePicker.js的使用方法
  3. 卧槽,redis分布式锁如果用不好,坑真多
  4. WPF实现类似MDI子窗体的功能
  5. Android 实现书籍翻页效果----原理篇
  6. python模块包教学_python模块和包
  7. 对空防御的训练 改编自BZOJ3165 (线段树永久化标记 李超线段树)
  8. xp访问不了win10计算机,如何解决winxp访问win10共享打印机提示凭据不足
  9. 《没有任何借口》《追求卓越》
  10. 基于路网和GeoPandas的高斯两步移动搜索法可达性分析