苹果实现的MIN(A,B)求最小值方法
//CLANG MIN#define __NSX_PASTE__(A,B) A##B#define MIN(A,B) __NSMIN_IMPL__(A,B,__COUNTER__)#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); })
参照MIN写法的SQUARE(A)求平方实现
#define SQUARE(A) __NSSQUARE_IMPL__(A,__COUNTER__)#define __NSSQUARE_IMPL__(A,L) ({__typeof__(A) __NSX_PASTE__(__a,L) = (A);\ __NSX_PASTE__(__a,L) * __NSX_PASTE__(__a,L)})