This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Silencing "unused parameter" warning


Any good suggestions for silencing the "unused parameter" warnings on a per-case basis? As opposed to turning them all off via compiler option, that is.

I'd like to avoid the warnings for placeholder routines and API-required parameters that happen not to be needed in some routines, while retaining the warning for truly unneeded parameters.

Stupid coding tricks I've used in the past with other tools include a cast to void (which just substitutes a "expression may have no effect" warning with C51, no net gain) and commenting out the parameter name (which just earns a "unnamed parameter" error from C51). If "unnamed parameter" were just a warning, I'd probably opt for that and squelch it globally, since it's not likely to occur accidentally, but C158 is an error and prevents compilation.

Any favorite tricks to share?

Parents
  • Stephan,

    I checked again the construction I proposed yesterday, because you were saying it still generated the warning "expression with possibly no effect":

    #define UNUSED(p)  ( (void)(p)        )
    

    I didn't get the warning you were mentioning, so in my case it's working fine. With the Rebuild All command in uVision, I don't get any warning at all (C51 compiler is version 7.03).

    What could cause the difference between my and your result?

    Rgds,

    --Geert

Reply
  • Stephan,

    I checked again the construction I proposed yesterday, because you were saying it still generated the warning "expression with possibly no effect":

    #define UNUSED(p)  ( (void)(p)        )
    

    I didn't get the warning you were mentioning, so in my case it's working fine. With the Rebuild All command in uVision, I don't get any warning at all (C51 compiler is version 7.03).

    What could cause the difference between my and your result?

    Rgds,

    --Geert

Children