• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

在define里面遇到的问题

首先看一下下面的代码
#define MAX(a, b) \({ \typeof(a) _a = a; \typeof(b) _b = b; \(void)(&_a == &_b); \((_a)>(_b) ? (_a) : (_b)); \})({......})是语句表达式
问题1:
里面的(void)(&_a==&_b)书上说是比较地址类型,但这不是比较地址吗?为什么会是比较地址类型?
问题2:

还是有关(void)(&_a==&_b),书上说它的作用是“前面的强类型转换(void)目的是要让编译器认为后面的比较语句是有作用的,从而不会因为误以为没有实际作用而报出其他我们不需要的警告。”
1.“前面的强类型转换(void)目的是要让编译器认为后面的比较语句是有作用的”这句话,编译器从上往下编译,应该是不会忽略掉后面的语句的,那“让编译器认为后面的比较语句是有作用的”这句话是不是有点多余??
2.我去掉那条语句的时候编译的时候没有警告,加上反倒有警告,无法理解“编译器从而不会因为误以为没有实际作用而报出其他我们不需要的警告”

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

发新帖

发布任务需求已有1031167位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!