iOS之C的宏定義

蘋果實現的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)})
相關文章
相關標籤/搜索