assert_param(expr) ((void)0)
小弟最近刚刚在学习stm32,看到如上代码,请问大神:
问题1:这个void 0的作用是啥?为什么要这么写?
问题2:(expr)的作用是什么?这个是C语言的语法问题吗?
------解决思路----------------------
问题1:这个void 0的作用是啥?为什么要这么写?
这里没啥用处,可根据需要替换自己的断言
问题2:(expr)的作用是什么?这个是C语言的语法问题吗?
是宏定义的参数,是C语言的语法
宏定义是预处理阶段处理的,就是 assert_param(expr) 的地方被 ((void)0) 替换