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