Выходные параметры не должны использоваться
Выходные параметры не используются.
Выходное значение функции можно сохранить в переменной, передаваемой этой функции в качестве параметра ссылки или указателя, отличного от const, например:
void func(const T* input_var, T* output_var); //declaration
void func(const T* input_var, T* output_var)
{
*output_var = *input_var % 2;
}Однако из описания функции неясно, является ли выходной параметр output_var передает значение в func а затем сохраняет выходные данные (входной параметр) или output_var сохраняет только выходные данные (параметр out). Это может привести к неправильному использованию параметра разработчиком, например, путем передачи нулевого параметра, когда функция ожидает ненулевого параметра.
Вместо этого используйте возвращаемое значение для сохранения выходных данных функции. Возвращаемое значение делает ваше намерение ясным и предотвращает возможное неправильное использование переданных параметров, например:
T* func(const T* input_var)
{
return *input_var % 2;
}Polyspace ® помечает все виды использования ссылок или указателей, отличных от const, в списке параметров:
Функции, за исключением main().
Конструкторы классов и операторы.
Если код содержит объявление функции и ее определение, Polyspace помечает нарушение в определении функции.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Деклараторы |
| Категория: Обязательно, Автоматизировано |