Как подавить предупреждения о «неиспользуемом параметре» в C?

Например:

Bool NullFunc(const struct timespec *when, const char *who)
{
   return TRUE;
}

В C ++ я смог добавить комментарий /*...*/ вокруг параметров. Но не в C, конечно, где он выдает ошибку error: имя параметра пропущено .

195
задан Ciro Santilli 新疆改造中心法轮功六四事件 23 June 2018 в 07:54
поделиться

2 ответа

Обычно я пишу такой макрос:

#define UNUSED(x) (void)(x)

Вы можете использовать этот макрос для всех ваших неиспользуемых параметров. (Обратите внимание, что это работает на любом компиляторе.)

Например:

void f(int x) {
    UNUSED(x);
    ...
}
279
ответ дан 23 November 2019 в 05:21
поделиться

В gcc параметр можно пометить атрибутом unused.

Этот атрибут, прикрепленный к переменной, означает, что переменная предназначен для возможно неиспользования. GCC не будет выдавать предупреждение об этом Переменная.

На практике это достигается путем помещения __attribute__ ((unused)) непосредственно перед параметром. Например:

void foo(workerid_t workerId) { }

становится

void foo(__attribute__((unused)) workerid_t workerId) { }
101
ответ дан 23 November 2019 в 05:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: