c/c++ (void) var语句的作用与ignore_unused的对比

例如:
nt f1(int a, int b)
{
  (void)b;
  return a;
}

int f2(int a, int b)
{
  return a;
}



    C/C++语句 "(void) 变量名;" 的作用是,避免未使用变量的编译警告。编译器在使用  -Wunused 参数时,警告提示有变量声明带未使用。
#pragma unused

也可以禁止警告信息输出。

有时候,定义一个变量,是为了断言其值是否在预期之内,并不打算使用,利用(void)的方法,达到禁止此变量未使用的警告信息。

例如:

{
        auto const result =
            m_peers.emplace (peer->slot(), peer);
        assert (result.second);
        (void) result.second;
 }


另外一种方法是使用boost库提供的ignore_unused

使用方法:

int func(int x,int y){
  int i;
  ignore_unused(x,i);
  return y;
}



ignore_unused的好处是可以一次屏蔽多个未使用变量的编译警告,没有运行效率损失,(void) var;方式会被编译器优化掉,也不会有运行效率损失。(void)var的缺陷是语义不明确。ignore_unused比C风格的(void)var 更容易理解,无需多余的注释,代码自身说明了一切。


转载于:https://my.oschina.net/lieefu/blog/625929

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值