OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10393|回复: 5

一个小语句看不懂,求解答,(新人上手没人教不容易啊)

[复制链接]

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-8-2
在线时间
0 小时
发表于 2013-8-2 21:05:19 | 显示全部楼层 |阅读模式
我在查看程序最底层的库函数时,常看到这个函数,我想明白它表达的什么意思,求大神详细解答一下:
assert_param (****)
//eg:  assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph));
         assert_param(IS_FUNCTIONAL_STATE(NewState));

  #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
/* Exported functions ------------------------------------------------------- */
  void assert_failed(uint8_t* file, uint32_t line);
#else
  #define assert_param(expr) ((void)0)

它的形参是什么,返回值又是什么,怎么又是进行的一个宏定义,到底在表达些什么,这个语句

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

204

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
287
金钱
287
注册时间
2013-7-17
在线时间
0 小时
发表于 2013-8-2 21:12:52 | 显示全部楼层
我的理解就是用这个函数来判断你给的实参在不在规定的取值范围之内,每一个库函数的形参都是有范围限制的。
有生之年,只诉温暖不言殇,花味渐浓,茶味渐醇,倾心相遇,安暖相陪。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-2 21:14:50 | 显示全部楼层
回复【楼主位】人生只若@初恋:
---------------------------------
这是断言机制,比如指定某个变量必定不等于或者等于某个值,如果不相符,那么就报错.
这个东西我没用过,只是看到很多人用,st的官方例程也都有,呵呵.
它的参数expr,就是个表达式,这个assert_param其实就是个宏定义,判断表达式expr是否为真,如果为真,则表达式不执行任何操作.如果为假,那么就执行 assert_failed((uint8_t *)__FILE__, __LINE__))这个函数.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-8-2
在线时间
0 小时
 楼主| 发表于 2013-8-2 21:22:27 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
谢谢了,虽然不怎么明白什么意思,好像也貌似不重要,我先往下看着吧(上面给的是在时钟设置初始化的时候往里面看到的,时钟那块其实也还是迷糊着看的),非常欣赏站长
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-8-3 04:06:21 | 显示全部楼层
程序崩溃的时候就重要了
业余程序玩家。
回复 支持 反对

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-8-2
在线时间
0 小时
 楼主| 发表于 2013-8-3 10:14:48 | 显示全部楼层
回复【5楼】ofourme:
---------------------------------
刚起步,到了程序要崩溃的时候我来找大哥帮忙
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-15 21:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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