#define min(x,y) ({\

    typeof(x) _x=(x); \

    typeof(y) _y=(y); \

    (void) (&_x==&_y); \

    _x < _y ? _x : _y; })

出现在内核3.3.8

(void) (&_x==&_y);的目的是检查指针是否可比较,不是同一个类型会编译出错