У меня вопрос простого дизайна (?).
Я пишу простую программу, в которой есть пара функций, которые выглядят следующим образом.
float foo (float* m,size_t n){
float result;
//do some calculations, for example a sum
return result / n;
}
У меня есть пара вопросов по этому поводу, я не собираюсь открывать какую-то священную войну.
Должен ли я добавить проверку вменяемости на n
?Если так, как я должен сообщить вызывающей стороне?
Возвращение -1
выглядит странно на поплавках;
float foo(float *m,size_t n){
if (n == 0) return -1f
...
}
Мой другой параметр - это выходной параметр
float foo(float *m,size_t n, int *error){
if (n==0){
*error = 1;
return 0f;
}
...
}
обновление
Это своего рода игрушечная программа, просто пытающаяся попрактиковаться.Вопрос превосходит этот факт.Может быть, мне следует перефразировать: «Как обрабатывать ошибки без (OOP) исключений».
Также рассматривается тестирование n
перед выполнением вызова, но оно мне не очень нравится.
Anyмысли?Заранее спасибо.