Home  >  Q&A  >  body text

c++ - 怎么样让编译器对某些函数不再抱怨warning: unused parameter ‘xxx’?

要求:
1. 只对指定的函数生效
2. 最好的编译器无关的(我用的是g++,如果不能实现编译器无关的,能让g++心满意足也足够了)
3. 不带来额外的运行时消耗
4. 给人带来的惊讶越小越好。(比如 signal = 0这样的做法就不推荐了)

求各种可行的有趣的quick but not dirty的解决方案。

怪我咯怪我咯2765 days ago591

reply all(2)I'll reply

  • ringa_lee

    ringa_lee2017-04-17 11:41:21

    If possible, please use normal methods to eliminate warnings. If it is really unnecessary, just remove it

    Method 1:

    void foo(int a) {
        (void)a;
        // ...
    }
    

    Method 2:

    #ifdef __GNUC__
    #  define UNUSED(x) UNUSED_ ## x __attribute__((__unused__))
    #else
    #  define UNUSED(x) UNUSED_ ## x
    #endif
    
    void foo(int UNUSED(a)) {
        // ...
    }
    

    Reference: http://stackoverflow.com/a/12891181

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-17 11:41:21

    void f(int) {
        // ...
    }
    

    reply
    0
  • Cancelreply