在使用STM32的hal库的时候,我们常常可以看到很多库自带的函数有很多是使用__weak修饰的,比如:

这个修饰符的作用是什么呢?先看看单词的意思:

我们可以知道这是弱的意思,具体弱在哪里?又是和什么比较?

其实函数名称前面加上__weak 修饰符,我们一般称这个函数为“弱函数”

加上了__weak 修饰符的函数,用户可以在用户文件中重新定义一个同名函数,最终编译器编译的时候,会选择用户定义的函数,如果用户没有重新定义这个函数,那么编译器就会执行__weak 声明的函数,并且编译器不会报错。所以我们可以在别的地方定义一个相同名字的函数,而不必也尽量不要修改之前的函数,。

__weak 关键字的作用相关推荐

  1. linux中__weak关键字的作用

    在linux的驱动代码中经常可以看到__weak去修饰一个函数或者变量,大多是用来修饰函数. 它的作用有两个: 1.weak 顾名思义是"弱"的意思,所以如果函数名称前面加上__w ...

  2. 【Java_基础】Java中Native关键字的作用

    本篇博文转载与:Java中Native关键字的作用 转载于:https://www.cnblogs.com/leiblog/p/10529056.html

  3. c++语言static作用,详解c++中的 static 关键字及作用

    注:若没有特指是 静态成员时,默认都是普通成员: 1 类中的普通成员 类中的成员变量 和 成员函数 是分开存储的.其中, 1)每个对象都有独立的成员变量:成员变量可以存储在 栈空间.堆空间.全局数据区 ...

  4. volatile关键字的作用、原理

    在只有双重检查锁,没有volatile的懒加载单例模式中,由于指令重排序的问题,我确实不会拿到两个不同的单例了,但我会拿到"半个"单例. 而发挥神奇作用的volatile,可以当之 ...

  5. C++中explicit关键字的作用

    C++中explicit关键字的作用 explicit用来防止由构造函数定义的隐式转换. 要明白它的作用,首先要了解隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换. ...

  6. [partial] C#里partial关键字的作用

    [partial] C#里partial关键字的作用 1. 什么是局部类型? C# 2.0 引入了局部类型的概念.局部类型允许我们将一个类.结构或接口分成几个部分,分别实现在几个不同的.cs文件中. ...

  7. 深入理解并发内存模型||JMM与内存屏障||多核并发缓存架构 ||JMM内存模型||volatile 关键字的作用 ||JMM 数据原子操作||JMM缓存不一致的问题

    深入理解并发内存模型||JMM与内存屏障 多核并发缓存架构 JMM内存模型 volatile 关键字的作用 JMM 数据原子操作 JMM缓存不一致的问题

  8. [实验]-从汇编代码来看volatile关键字的作用

    ★★★ 个人博客导读首页-点击此处 ★★★ 环境aarch64的交叉编译器 我们将C语言翻译成汇编代码,来看volatile关键字的作用 我们先看一段C语言代码 void udelay(uint64_ ...

  9. 、简述global关键字的作用_详解static inline关键字

    详解static inline关键字 本文章为知乎用户 @徐yang哟 原创,禁止抄袭! 灵感来源 在查stm32的LL库部分函数的API时,有时会查到这种函数: __STATIC_INLINE vo ...

最新文章

  1. [转] Leaving patterns practices
  2. C++map容器遍历删除:cannot increment value-initialized map/set iterator
  3. 【kafka】Kafka 集群配置SASL+ACL
  4. Python提取任意长度整数的每位数字
  5. layout里添加xml文件没有在R.java里生成ID
  6. 【深度学习之Tensorflow2.0】函数matmul和函数multiply的用法
  7. CSS系列之 box-sizing
  8. 【Love2d从青铜到王者】第十五篇:Love2d之角度和距离(Angles and distance)
  9. wincap的使用总结
  10. android 怎么改变字体颜色,安卓系统字体颜色修改教程
  11. java wgs84 百度坐标,百度坐标转WGS84(即GPS)坐标
  12. 1052 Linked List Sorting (25 分)-PAT甲级
  13. hp 交换机远程连接_Hp服务器 iLO3 使用方法
  14. Fatal error: require(): Failed opening required ‘/home/www/xx/public/../thinkphp/start.php
  15. 盘古开源解析:物联网时代的芯片产业新趋势
  16. krpano 陀螺仪 相关问题
  17. ubuntu 18.04 安装gdb
  18. DTV_SI 汇总 兼谈LCN
  19. UPS蓄电池放电时间的计算
  20. 佳能c3020维修模式 白电平调整_各品牌传真机清零方法及白电平调整方法汇总

热门文章

  1. 收藏优秀外贸平台B2B网站 开发国外客户用什么平台
  2. IDEA设置背景图像
  3. Jo——一个简单HTML5移动框架介绍
  4. linux中的lo介绍及作用(回环接口 回环IP)
  5. 5个技巧,帮助编程新手培养持续学习能力
  6. Qcom 平台 LK 阶段配置 I2C
  7. 【第四章】 C语言之牛客网刷题笔记 【点进来保证让知识充实你一整天】
  8. 人民币大小写转换工具类
  9. 秋招为什么越来越难了
  10. 树下阅读用户隐私协议