У этого вопроса уже есть ответ здесь:
Каков наилучший / лучший способ подавить компилятор (в данном случае gcc), такой как «Неиспользуемая переменная x»?
] Я не хочу давать какие-либо определенные флаги для gcc, чтобы удалить все эти предупреждения, только для особых случаев.
Нашли статья http://sourcefrog.net/weblog/software/languages/C/unused.html , объясняющая НЕИСПОЛЬЗУЕМЫЕ. Интересно, что автор также искажает неиспользуемое имя переменной, чтобы вы не могли случайно использовать его в будущем.
Выдержка:
#ifdef UNUSED
#elif defined(__GNUC__)
# define UNUSED(x) UNUSED_ ## x __attribute__((unused))
#elif defined(__LCLINT__)
# define UNUSED(x) /*@unused@*/ x
#else
# define UNUSED(x) x
#endif
void dcc_mon_siginfo_handler(int UNUSED(whatsig))
Это очень хакерское решение, но вы пробовали просто присвоить переменную самой себе? Я думаю, что это должно ввести в заблуждение большинство компиляторов, заставив их думать, что используется переменная. Также должно быть достаточно портативным.
Удалите объявление неиспользуемой переменной из кода. (каламбур)
(Что ??? Это то, что я делаю: укажите, что очевидное, скорее всего, лучшее решение.)
Теперь, судя по комментариям к другим ответам, очевидно, что это мусор, созданный из макросов. Что ж, плеоназм.
Решения:
(void) переменная
может работать для некоторых компиляторов.
Для кода на C++ также смотрите http://herbsutter.com/2009/10/18/mailbag-shutting-up-compiler-warnings/, где Херб Саттер рекомендует использовать:
template<class T> void ignore( const T& ) { }
...
ignore(variable);
Если он использовался и вы отправляете проект, удалите его. Худший комментарий.
Если это действительно то, что вы хотите, вы можете использовать атрибут unused (только для gcc), что-то вроде:
void foo(int __attribute__((__unused__)) bar) {
...
}
Конечно, не только для параметров функции, но это наиболее распространенный случай использования, поскольку это может быть функция обратного вызова для API, где вам не нужны все входные данные.
Кроме того, в GLib есть макрос G_GNUC_UNUSED, который, как я полагаю, расширяет этот атрибут.