【发布时间】:2016-02-20 06:24:43
【问题描述】:
让我们通过这篇文章回顾一下Clang的MIN宏:Deep learning IOS development of macro。最终结果是what you can also find here:
#define __NSX_PASTE__(A,B) A##B
#define __NSMIN_IMPL__(A,B,L) ({\
__typeof__(A) __NSX_PASTE__(__a,L) = (A);\
__typeof__(B) __NSX_PASTE__(__b,L) = (B);\
(__NSX_PASTE__(__a,L) < __NSX_PASTE__(__b,L)) ? __NSX_PASTE__(__a,L) : __NSX_PASTE__(__b,L);\
})
但我不明白定义__NSX_PASTE__ 的必要性。直接使用岂不是一样更易读:
#define __NSMIN_IMPL__(A,B,L) ({\
__typeof__(A) __a##L = (A);\
__typeof__(B) __b##L = (B);\
(__a##L < __b##L) ? __a##L : __b##L;\
})
【问题讨论】:
-
可能是宏扩展的尝试:stackoverflow.com/a/5256500/1033581
标签: objective-c macros clang min