你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
每日签到
STM32团队2
论坛吐槽优化专区
升级测试
HAL函数对Handle有效性的检查为什么不是用assert_param断言?
[复制链接]
zoomdy
提问时间:2017-1-24 12:48 /
阅读主题, 点击返回1楼
赞
0
收藏
3
评论
19
分享
发布时间:2017-1-24 12:48
请先
登录
后回复
19个回答
toofree
回答时间:2017-2-8 11:42:41
a0a.1 32b0c
根据二楼所说,及平时用Keil的应用。
对断言这么理解,assert_param(hspi != NULL) 只在调试仿真过程中才会有效;
而程序在编译成可执行代码后,这句相当于不存在了。而为了代码安装需要时时刻刻来判断输入参数是否有效,一旦输入参数无效,却被错误的执行了,那后果可能是灾难性的。
赞
0
评论
回复
支持
反对
creep
回答时间:2017-2-8 11:47:18
a0a.1 32b0c
之前分享的一个使用断言关于参数检查的帖子:
【STM32F303开发】+库函数参数检查
https://www.stmcu.org.cn/module/ ... &fromuid=394920
(出处: 意法半导体STM32/STM8技术社区)
赞
0
评论
回复
支持
反对
cldym
回答时间:2017-2-8 11:59:35
a0a.1 32b0c
支持二楼的解释。
赞
0
评论
回复
支持
反对
zbber
回答时间:2017-2-8 13:25:36
a0a.1 32b0c
淡定,淡定,淡定……
赞
0
评论
回复
支持
反对
党国特派员
回答时间:2017-2-8 14:55:00
a0a.1 32b0c
本帖最后由 党国特派员 于 2017-2-8 15:21 编辑
我来说个直白点的
断言一般是内部函数对参数的有效性进行检查。也就是说你的这些参数不是用户给的,能够保证参数的正确性。
如果你的函数是给用户使用的,那么就要使用IF ELSE对参数进行检查。因为用户很有可能给你传过来不是你要求的值。
至于3楼,没有说到断言的真正意图,会对大家造成一种误解,我实在不敢认同。
赞
0
评论
回复
支持
反对
Dylan疾风闪电
回答时间:2017-2-8 15:25:34
a0a.1 32b0c
赞2楼,支持观点
赞
0
评论
回复
支持
反对
请叫我小张张
回答时间:2017-2-8 16:29:31
a0a.1 32b0c
支持2楼解释
赞
0
评论
回复
支持
反对
peter001
回答时间:2017-2-8 22:40:21
a1024a.1 32b0c
学习了
赞
0
评论
回复
支持
反对
五哥1
回答时间:2017-2-9 03:07:52
a1024a.1 32b0c
二楼正解
赞
0
评论
回复
支持
反对
庐山烟雨
回答时间:2017-2-10 15:22:38
a0a.1 32b0c
断言宏可选择性编译,在编译为空时仍需要对传入参数进行规则检查。
赞
0
评论
回复
支持
反对
1
2
/ 2 页
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
对断言这么理解,assert_param(hspi != NULL) 只在调试仿真过程中才会有效;
而程序在编译成可执行代码后,这句相当于不存在了。而为了代码安装需要时时刻刻来判断输入参数是否有效,一旦输入参数无效,却被错误的执行了,那后果可能是灾难性的。
【STM32F303开发】+库函数参数检查
https://www.stmcu.org.cn/module/ ... &fromuid=394920
(出处: 意法半导体STM32/STM8技术社区)
我来说个直白点的
断言一般是内部函数对参数的有效性进行检查。也就是说你的这些参数不是用户给的,能够保证参数的正确性。
如果你的函数是给用户使用的,那么就要使用IF ELSE对参数进行检查。因为用户很有可能给你传过来不是你要求的值。至于3楼,没有说到断言的真正意图,会对大家造成一种误解,我实在不敢认同。