(void)var;
This statement does effectively nothing. But helps in silencing compiler.
It's mainly done to avoid unused variable warnings.
In reply to @vonbrand's comment. Here are made up situations where this is useful.
- The function is declared in a header file. But the function body has been modified and one of its parameter is no longer used. But modifying header be require testing other code
that's using this header file.
- A new function is written but the parameter that's currently unsed will be used when the function is modifed later. Otherwise, the function prototype is required to modify in the
header and in the definition.
For example in gcc, when the compilation option is -Werror
is used by default in the makefile and it may not be desirable to modify for the whole project. Besides, it's completely harmless
and portable to do (void)var;
for any variable. So I don't see why it would be a bad idea which helps programmers life easier in some situations.
So it's not always desirable to get rid of unused variables. Doing so would require more work when later needed.