当前位置:  开发笔记 > 编程语言 > 正文

为什么在min的这个实现中比较地址?

如何解决《为什么在min的这个实现中比较地址?》经验,为你挑选了1个好方法。

分功能的实现在这里做的:

#define min(x, y) ({                \
    typeof(x) _min1 = (x);          \
    typeof(y) _min2 = (y);          \
    (void) (&_min1 == &_min2);      \
_min1 < _min2 ? _min1 : _min2; })

第四行有什么意义?

为什么这样做(void) (&_min1 == &_min2);



1> rom1v..:

它产生,如果一个警告x,并y有不同的类型:

int i;
long j;
(void) (&i == &j);

编译器说:

warning: comparison of distinct pointer types lacks a cast

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有