点击(此处)折叠或打开
- #define min(x, y) ({ \
- typeof(x) _min1 = (x); \
- typeof(y) _min2 = (y); \
- (void) (&_min1 == &_min2); \
- _min1 < _min2 ? _min1 : _min2; })
其中(void) (&_min1 == &_min2);有什么作用?
这句的作用是比较两个操作数的类型是否相同,防止不同类型的数据进行比较。
若不相同,则会在编译时给出警告:comparison of distinct pointer types lacks a cast。
两个指针类型不同是不能进行相互比较的。
转自: