Unused parameter

Прототип функции имеет параметры не чтение или написанный в теле функции

Описание

Этот дефект происходит, когда параметр функции ни не считан, ни написан в теле функции. Средство проверки не отмечает неиспользованные параметры в функциях с пустыми телами.

Риск

Неиспользованные параметры могут указать, что код является возможно неполным. Параметр возможно предназначается для операции, что вы забыли кодировать.

Если скопированные объекты являются большими, избыточные копии могут замедлить производительность.

Фиксация

Определите, намереваетесь ли вы использовать параметры. В противном случае удалите параметры, которые вы не используете в теле функции.

У вас могут намеренно быть неиспользованные параметры. Например, у вас есть параметры, которые вы намереваетесь использовать позже, когда вы добавляете улучшения в функцию. Добавьте комментарий к коду, указывающий на ваше намерение для дальнейшего использования. Комментарий к коду помогает, вы или рецензент кода изучаете, почему ваша функция имеет неиспользованные параметры.

В качестве альтернативы добавьте оператор, такой как (void)var; в теле функции. var неиспользованный параметр. Можно задать макрос, который расширяется до этого оператора, и добавьте макрос в тело функции.

Примеры

развернуть все

void func(int* xptr, int* yptr, int flag) {
    if(flag==1) {
        *xptr=0;
    }
    else {
        *xptr=1;
    }
}

int main() {
    int x,y;
    func(&x,&y,1);
    return 0;
}

В этом примере, параметр yptr не используется в теле func.

Коррекция — параметр использования

Одна возможная коррекция должна проверять, намеревались ли вы использовать параметр. Зафиксируйте свой код, если вы намеревались использовать параметр.

void func(int* xptr, int* yptr, int flag) {
    if(flag==1) {
        *xptr=0;
        *yptr=1;
    }
    else {
        *xptr=1;
        *yptr=0;
    }
}

int main() {
    int x,y;
    func(&x,&y,1);
    return 0;
}

Коррекция — явным образом указывает на неиспользованный параметр

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

#define UNUSED(x) (void)x

void func(int* xptr, int* yptr, int flag) {
    UNUSED(yptr);
    if(flag==1) {
        *xptr=0;
    }
    else {
        *xptr=1;
    }
}

int main() {
    int x,y;
    func(&x,&y,1);
    return 0;
}

Информация о результате

Группа: Хорошая практика
Язык: C | C++
Значение по умолчанию: 'off'
Синтаксис командной строки: UNUSED_PARAMETER
Удар: низко

Введенный в R2015b