Правило 17.7 MISRA C:2012

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

Описание

Управляйте определением

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

Объяснение

Можно непреднамеренно вызвать функцию с non-void, возвращают тип, но не используют возвращаемое значение. Поскольку компилятор позволяет вызов, вы не можете отловить пропуск. Это правило запрещает вызовы функции non-void, где возвращаемое значение не используется. Если вы не намереваетесь использовать возвращаемое значение функции, явным образом бросьте возвращаемое значение к void.

Обменивайтесь сообщениями в отчете

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

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Примеры

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

unsigned int cutOff(unsigned int val) {
    if (val > 10 && val < 100) {
        return val;
    }
    else {
        return 0;
    }
}

unsigned int getVal(void);

void func2(void) {
    unsigned int val = getVal(), res;
    cutOff(val);           /* Non-compliant */
    res = cutOff(val);     /* Compliant */
    (void)cutOff(val);     /* Compliant */
}

В этом примере нарушено правило, когда возвращаемое значение cutOff не используется впоследствии.

Правило не нарушено, когда возвращаемое значение:

  • Присвоенный другой переменной.

  • Явным образом бросьте к void.

Проверяйте информацию

Группа: Функция
Категория: необходимый
Категория AGC: удобочитаемость
Язык: C90, C99

Введенный в R2014b