免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3018 | 回复: 9
打印 上一主题 下一主题

请解释下这个是什么意思?3Q [复制链接]

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-07-04 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-27 15:55 |只看该作者 |倒序浏览
高手们, 给我讲讲下面这个是什么意思:
#define min(x, y) ({                                \
        typeof(x) _min1 = (x);                        \
        typeof(y) _min2 = (y);                        \
        (void) (&_min1 == &_min2);                \
        _min1 < _min2 ? _min1 : _min2; })
(其中的 (void) (&_min1 == &_min2);是什么意思! 非常感谢。。。)

论坛徽章:
0
2 [报告]
发表于 2010-05-27 16:53 |只看该作者
http://linux.chinaunix.net/bbs/thread-1161263-1-1.html这是我以前问的相同的一个问题,别人解答了,可以看看

论坛徽章:
0
3 [报告]
发表于 2010-05-27 19:05 |只看该作者
(void) (&_x == &_y)这句话本身都执行程序来讲完全是一句废话,它的作用在于,本身我们无法做这样的操作typeof(_x)==typeof(_y),所以故意判断他们2个的地址指针是否相等,显然是不可能相等,但是如果_x和_y的类型不一样,其指针类型也会不一样,2个不一样的指针类型进行比较操作,会抛出一个编译警告。也就是说char *p; int *q; 然后p==q;,这个判断因为一个是char*一个是int*,会在编译时产生一个warning。巧妙就巧妙在这里。

论坛徽章:
0
4 [报告]
发表于 2010-05-28 09:54 |只看该作者
学习了,好东西。

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-07-04 06:20:00
5 [报告]
发表于 2010-05-28 12:18 |只看该作者
回复 3# aaaaa5aa


    我分别在ubuntu和debian 上面, 试着编译, 而且 加上 -Wall  。 编译并没有任何报错。
所以, 是不是为了 像对齐“地址空间”那样的作用。

论坛徽章:
0
6 [报告]
发表于 2010-05-28 19:39 |只看该作者
回复 5# lcmust


    编译不会有错的,这是正常语句,只是为了判断_x和_y的类型是否一致

论坛徽章:
0
7 [报告]
发表于 2010-05-31 22:46 |只看该作者
回复  aaaaa5aa


    我分别在ubuntu和debian 上面, 试着编译, 而且 加上 -Wall  。 编 ...
lcmust 发表于 28-05-2010 12:18



    只是给你warning:
  1.          
  2.          int a;
  3.          char b;


  4. min.c:10: warning: comparison of distinct pointer types lacks a cast
复制代码
GCC 版本
gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu11)

论坛徽章:
0
8 [报告]
发表于 2010-06-01 19:59 |只看该作者
正常,我说过,会抛出一个编译警告

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-07-04 06:20:00
9 [报告]
发表于 2010-06-04 12:59 |只看该作者
谢谢楼上的几位, 明白了。学习了  thank you  very much!

论坛徽章:
0
10 [报告]
发表于 2010-06-04 22:29 |只看该作者
Thanks,学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP