C: Выдать ошибку при проверке параметров или позволить ей поразить вентилятор?

У меня простой вопрос о дизайне (?).

Я пишу простую программу, в которой есть несколько функций, которые выглядят так.

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

     ...
  }

Другой вариант - параметр out

float foo(float *m,size_t n, int *error){

        if (n==0){
           *error = 1;
            return 0f;
        }
       ...
}

update

Это своего рода игрушечная программа, просто пытающаяся попрактиковаться. Вопрос выходит за рамки этого факта. Может быть, мне стоит перефразировать «как обрабатывать ошибки без исключений (ООП)».

Также рассматриваю возможность тестирования n перед вызовом, но это не очень нравится.

Есть мысли? Заранее спасибо.

5
задан Tom 7 September 2010 в 04:37
поделиться