JMVC的代码非常难以理解,尤其是宏部分
看了一篇专门讲宏的文章,就分享一下吧
本文讨论的宏定义于macros.h
大部分宏的开头字母是R , 这次R的含义是
不在开头位置的字母R , 此时的含义是该宏返回的值并非错误值 ,而是宏所输入的参数retVal 。
比如 ROFR
字母 O
比如
ROT(exp) 其含义为 if( exp ) ERRR
字母 S
前面所说的宏 , 除了已经说明的含义外, 还有一个操作是 Assert( 0 )。但是 如果 宏的尾巴上加了S
好了 这下大部分宏的意思就可以看懂了
RERR 就是 ASSERT (0 ) ; Return
ROF(exp)
ROFS(exp)
ROT(exp)
ROTS( exp ) 就是
ROFR(exp,retVal)
ROFRS(exp, retVal) 就是 if( !exp ) { Return retVal; }
其他大致如此。
另外还有几个重要的 , 就是
比如 RNOK(exp ) 就是
RNOKR(exp,retVal) 就是 if( exp != OK ) { Assert(0); return retVal; }
还有一个是 A , A 表示 Assert,比如 AF
ANOK(exp) 就是
AOF( exp )
AOT( exp) :