JMVC里的宏

JMVC的代码非常难以理解,尤其是宏部分

看了一篇专门讲宏的文章,就分享一下吧

本文讨论的宏定义于macros.h

 

       大部分宏的开头字母是R , 这次R的含义是 Return。比如 RERR ,就是 Return 一个错误值 ,该值定义于ERR 类中的m_nERR。

        不在开头位置的字母R , 此时的含义是该宏返回的值并非错误值 ,而是宏所输入的参数retVal 。

比如 ROFR (exp, retVal)  的函数是  if ( !exp  Return retVal

        字母 O  ,  其含义是判断宏的输入参数 exp。  F 的含义是 Fasle, T 的含义是 TRUE。

比如  ROF(exp)  其含义就是   if( !exp )  ERRR

        ROT(exp) 其含义为 if( exp ) ERRR

        字母 S  , 一般位于宏的末尾 , 其含义是无 Assert 操作 。

        前面所说的宏 , 除了已经说明的含义外, 还有一个操作是 Assert( 0 )。但是 如果 宏的尾巴上加了S , 那这个宏不会 Assert( 0 )。


好了 这下大部分宏的意思就可以看懂了

RERR                         就是            ASSERT (0 ) ; Return  ERR值

ROF(exp)                   就是            if ( !exp ) { ASSERT (0);  RERR }

ROFS(exp)                就是            if( !exp ) { RERR }

ROT(exp)                   就是            if( exp ) { ASSERT(0);  RERR }

ROTS( exp )              就是             if ( exp ) {  ERRR }

ROFR(exp,retVal)     就是            if( !exp ) { ASSERT(0) ; Return retVal; }

ROFRS(exp, retVal)  就是            if( !exp ) { Return retVal; }

 

其他大致如此。

另外还有几个重要的 , 就是  NOK 就是要检查值是否等于 ERR 中定义的 m_nOK

比如 RNOK(exp ) 就是  if( exp != OK ){ Assert(0); return exp;}

RNOKR(exp,retVal) 就是 if( exp != OK ) { Assert(0); return retVal; }

还有一个是 A , A 表示 Assert,比如 AF  就是  Assert( False )。

ANOK(exp) 就是  if( exp != OK ) { Assert(0) }

AOF( exp )    if( !exp )  { Assert(0) }

AOT( exp) :   if( exp ) {  Assert( 0 ) }

 好了   那些难解的宏 大致就这些了 。


参考:http://blog.sina.com.cn/s/blog_67badad20100xi8i.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值