佳途自动化学院论坛

 找回密码
 立即注册
搜索
热搜: 活动 discuz
查看: 1449|回复: 2

__weak关键字有什么作用?

[复制链接]

860

主题

1626

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10927
 楼主| 发表于 2021-3-7 17:13:30 | 显示全部楼层 |阅读模式
stm32的hal函数,很多都有__weak关键字,是什么意思呢,这个并不是C语言的标准关键字。
回复

使用道具 举报

860

主题

1626

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10927
 楼主| 发表于 2021-3-7 17:14:34 | 显示全部楼层
这玩意就好像是java里面的abstract关键字一样的,表面上叫弱函数,其实就是让你重写的,你需要重新编写这个函数,覆盖它,因为它并没有什么具体的逻辑实现,加__weak就是提示你,去重写这个函数的。
回复

使用道具 举报

860

主题

1626

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10927
 楼主| 发表于 2021-3-7 17:15:01 | 显示全部楼层
函数名称前面加上__weak 修饰符,我们一般称这个函数为“弱函数”。

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|佳途自动化学院论坛 ( 苏ICP备15005079号-3 )

GMT+8, 2024-3-28 18:46 , Processed in 0.086606 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表