LINUX.ORG.RU

#if defined(Q_CC_INTEL) && !defined(Q_OS_WIN) || defined(Q_CC_RVCT)
template <typename T>
inline void qUnused(T &x) { (void)x; }
# define Q_UNUSED(x) qUnused(x);
#else
# define Q_UNUSED(x) (void)x;
#endif

alex_custov ★★★★★
()
Последнее исправление: alex_custov (всего исправлений: 1)

если не не нужна - (void)var;

если *пока* не используется - никак.

очеыидно же.

Stil ★★★★★
()
#define _U_    __attribute__((__unused__))
...
int ApnGlueWheelOpen(_U_ unsigned int id, Apn_Filter type){
...
Anon
()
Ответ на: комментарий от yoghurt

Если же переменная не нужна заведомо и никогда не будет нужна, например, в данной перегрузке метода/версии виртуальной функции, достаточно просто не указывать её имя в прототипе.

yoghurt ★★★★★
()

А если мусора дофига (например, чей-то быдлокод), то можно так:

#pragma GCC diagnostic ignored "-Wunused-function"
Anon
()
Ответ на: комментарий от yoghurt

Не совсем. Есть несколько функций с одним интерфейсом (скажем параметрами А и Б). Так вот где-то есть указатель на колбек и эти функции по очереди присобачиваются туда. Одна выводит, скажем, А, другая Б.

inn
() автор топика

В случае, когда интерфейс унифицирован и от неё нельзя избавиться.

это как?

mashina ★★★★★
()
Ответ на: комментарий от yoghurt

А то, что интерфейс не поменять при всем желании. Так что приходится иметь пару предупреждений.

inn
() автор топика
Ответ на: комментарий от aiqu6Ait

Не о том разговор. Разговор идет о сообщениях компилятора. Когда их много - можно не увидеть нужное.

inn
() автор топика

Так она действительно неиспользуемая, или от неё таки нельзя избавиться?

Ах да…

си

PolarFox ★★★★★
()
Ответ на: комментарий от inn

А то, что интерфейс не поменять при всем желании. Так что приходится иметь пару предупреждений.

А тебя и не заставляет никто менять интерфейс. Если в

void foo (int a, int b, int c) {

тебе не нужны a и с, ты можешь просто написать

void foo (int, int b, int) {
yoghurt ★★★★★
()

Есть старый одесский анекдот метод:

перед функцией добавить коментарий:

/* ARGSUSED */
int
somefunc(int with, char a, long lot, float of, unsigned useless, short args)
{
        /* ... */
}

Пометка для lint, но gcc, если мне не изменяет склероз, их тоже понимает.

beastie ★★★★★
()
Ответ на: комментарий от KendovNorok

Напомните, сколько ресурсов потребляет одна переменная с пустым значением?

sizeof байт стека. Если её оптимизатор не выбросит.

emulek
()
Ответ на: комментарий от inn

А то, что интерфейс не поменять при всем желании. Так что приходится иметь пару предупреждений.

что такое «интерфейс» в контексте C?

emulek
()
Ответ на: комментарий от yoghurt

Ха, ёпт. Это только для С++. В Си не прокатывает, тогда упс

yoghurt ★★★★★
()
Ответ на: комментарий от beastie

Так же советую глянуть на /* FALLTHROUGH */ для case без break и /* NOTREACHED */ для функций которые «GOSUB without RETURN».

beastie ★★★★★
()
Ответ на: комментарий от yoghurt

void foo (int, int b, int) {

а, ну да. Я тоже так делаю. А как иначе-то?

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.