打印

请教C 的宏 定义

[复制链接]
2094|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
itelectron|  楼主 | 2010-9-20 09:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
se, RAM, AI, rc, ip
assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph));
assert_param(expr) ((void)0)



  #define assert_param(expr) ((expr) ? (void)0 : assert_failed((u8 *)__FILE__, __LINE__))
/* Exported functions ------------------------------------------------------- */
  void assert_failed(u8* file, u32 line);
#else
  #define assert_param(expr) ((void)0)
#endif /* DEBUG */
#endif /* __STM32F10x_CONF_H */







assert_param(expr) ((void)0)            请教这句话如何理解?

相关帖子

沙发
itelectron|  楼主 | 2010-9-20 09:48 | 只看该作者
IS_RCC_APB2_PERIPH(RCC_APB2Periph)  ==            (void)0   么?????

使用特权

评论回复
板凳
itelectron|  楼主 | 2010-9-20 09:50 | 只看该作者
#define IS_RCC_APB2_PERIPH(PERIPH) ((((PERIPH) & 0xFFFF0002) == 0x00) && ((PERIPH) != 0x00))

使用特权

评论回复
地板
itelectron|  楼主 | 2010-9-20 09:56 | 只看该作者
本帖最后由 itelectron 于 2010-9-20 10:00 编辑

#define IS_RCC_APB2_PERIPH(PERIPH) ((((PERIPH) & 0xFFFF0002) == 0x00) && ((PERIPH) != 0x00))


这句  是不是 限定  2种  情况  等于0   或者 不等于  0

使用特权

评论回复
5
itelectron|  楼主 | 2010-9-20 10:02 | 只看该作者
assert_param(expr) ((void)0)


然后超出设置  范围  则 编译报  错  assert_param

使用特权

评论回复
6
itelectron|  楼主 | 2010-9-20 10:04 | 只看该作者
assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph));
assert_param(expr) ((void)0)
#define IS_RCC_APB2_PERIPH(PERIPH) ((((PERIPH) & 0xFFFF0002) == 0x00) && ((PERIPH) != 0x00))

expr   ==  (void)0

expr ==   IS_RCC_APB2_PERIPH(RCC_APB2Periph)

使用特权

评论回复
7
itelectron|  楼主 | 2010-9-20 10:05 | 只看该作者
PERIPH  ==   (void)0

使用特权

评论回复
8
itelectron|  楼主 | 2010-9-20 10:12 | 只看该作者
assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph));//模拟一个函数  ??

使用特权

评论回复
9
itelectron|  楼主 | 2010-9-20 10:15 | 只看该作者
#define assert_param(expr) ((void)0)              //  expr  =  (void)0

使用特权

评论回复
10
batsong| | 2010-9-20 12:00 | 只看该作者
#define assert_param(expr) ((void)0)  

这个什么意思,不管expr是多少,assert_param(expr) 都为0 ?

#define assert_param(expr) ((expr) ? (void)0 : assert_failed((u8 *)__FILE__, __LINE__))
expr是1整个宏是0
expr是0则写入failed日志,宏是1 ?

使用特权

评论回复
11
itelectron|  楼主 | 2010-9-20 12:39 | 只看该作者
:handshake 谢谢

使用特权

评论回复
12
qsgang| | 2010-9-20 19:34 | 只看该作者
受教了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:MARK: zhi kan ji shu

274

主题

2762

帖子

8

粉丝