蘋果實現的MIN(A,B)求最小值方法code
//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)})