Quali sono le migliori pratiche per scrivere le funzioni C o C++ che restituiscono un int che rappresenta un codice di stato?Stato restituzione C o C++
In particolare, desidero conoscere l'utilizzo del client, ma altri suggerimenti sono benvenuti.
Per esempio, posso scrivere qualcosa del genere:
int foo() {
return 0; // because everything was cool
}
e quindi utilizzarlo come questo?
if (foo()) {
// what to do if false, e.g. non-zero, e.g. not OK
} else {
// what to do if true, e.g. zero, e.g. OK
}
Questo dovrebbe funzionare, perché le migliori pratiche in genere impongono che un codice di stato di 0
significa tutto era OK e anche 0
significa false
in una dichiarazione booleana.
Tuttavia, questo non sarebbe bene, a destra:
if (!foo()) {
// what to do if true
} else {
// what to do if false
}
'0' non significa' vero' in un'istruzione booleana. – Chad
Si potrebbe voler esaminare la gestione delle eccezioni in C++, che è stato in parte progettato per eliminare questo stile di codifica. – templatetypedef
@Chad: sembra consapevole di quello –