Выходные параметры не должны использоваться
Выходные параметры не должны использоваться.
Можно хранить выходное значение функции в переменной, которую вы передаете этой функции в качестве несоответствующего параметра ссылки или указателя, например:
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 сохраняет только выход (выходной параметр). Это может привести к неправильному использованию параметра разработчиком, например, путем передачи параметра null, когда функция ожидает ненулевого параметра.
Вместо этого используйте возврат значение для хранения выхода функции. Значение возврата делает ваш умысел ясным и препятствует возможному неправильному использованию переданных параметров, для примера:
T* func(const T* input_var)
{
return *input_var % 2;
}Polyspace® помечает все виды использования неконстатных ссылок или указателей в списке параметров:
Функции, кроме main().
Конструкторы классов и операторы.
Если ваш код содержит объявление функции и его определение, Polyspace помечает нарушение в определении функции.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
| Группа: Деклараторы |
| Категория: Необходимый, Автоматизированный |