C++ (void)varName

 1.在代码中对于一个变量、指针会出现(void)varName这样的形式,如:

///函数
int func(int a,int b)
{
   (void)b;
   return a;
}


类
class RangeFilterRenameEcho: public ActionHandler
{
    public:
        virtual int action(const DB::IAST & ast, Poco::JSON::Object::Ptr& jsonObj) override
        {
            rewriterLogger("handle RangeFilterRenameEcho");
            (void)ast;
            (void)jsonObj;
            return 0;
        }
    
        static ActionHandler* makeHandler()
        {
            return new RangeFilterRenameEcho;
        }

    public:
        static std::string ruleName;
};

      使用这种方式的主要作用是:避免未使用变量的编译警告。编译器在使用-Wunused参数时,会提示有变量声明未使用。

在C++中,没有使用的变量,在编译期间会出现警告。

2.另一种方式如下,也可以禁止警告信息输出,

#pragma unused

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

一个简单的示例如下:

int func(int a)
{
   ignore_unused(a);
   return 0;
}

int func(int a)
{
   int y;
   ignore_unused(a,y);
   return 0;
}

ignore_unused的好处是可以一次屏蔽多个未使用变量的编译警告,没有运行效率损失;

(void)varName方式会被编译器优化掉,不会有运行效率损失,但该方式语义不明确。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值