#define kMIN(A,B) A < B ? A : B    不准确


#define kMIN(A,B) ({__typeof__(A) _a = (A); __typeof__(B) _b = (B); _a < _b ? _a : _b;}) 


 int  j  = 3 ;
    int  q  = 4 ;
    //通过## 可以将3和4连接到一起 .
    j##q;

#define __NSX_PASTE__(A,B) A##B

#if !defined(MIN)
    #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); })
    #define MIN(A,B) __NSMIN_IMPL__(A,B,__COUNTER__)
#endif