Ho una funzione che verifica una matrice e restituisce un indice di matrice se la sonda ha esito positivo.Modo corretto per restituire un codice di errore per la funzione che restituisce size_t
Nel mio codice ho reso ogni tipo riguardante un indice di array a type_t
per chiarezza.
Qual è il modo preferito per mantenere tale chiarezza per questa funzione? Devo prendere un argomento puntatore a una variabile di errore e impostarlo?
inline size_t
lin_search(const double *pxa, const double x, const size_t idxlow, const size_t idxhigh)
{
for (size_t i = idxlow; i < idxhigh; i++)
{
if (pxa[i] <= x && pxa[i+1] > x)
return i;
}
return -1; // If I change the return type to f.ex long int this works
// but I am no longer consistent
}
Poi ho potuto usarlo come
index = linsearch(parray, x, 0, n - 1);
if (index == -1)
... not found
È possibile passare le funzioni al (firmato) 'ssize_t', invece? –
Non ho 'ssize_t'. Potresti restituire 'SIZE_MAX' per indicare un errore? –
'ssize_t' non è standard C (è POSIX). C ha 'ptrdiff_t', però. Detto questo, '(size_t) -1' è (AFAIK) sempre definito come' SIZE_MAX'; si potrebbe forse usare '#define LIN_SEARCH_ERR ((size_t) -1)' o simile. –