Статус возврата C или C ++

Каковы лучшие практики для написания функций C или C ++, которые возвращают int, представляющий код состояния?

В частности, я хочу знать об использовании клиента, но другие советы приветствуются.

Например, могу ли я написать что-то вроде этого:

int foo() {
  return 0;  // because everything was cool
}

А потом использовать это так?

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
}

Это должно сработать, потому что передовой опыт обычно диктует, что код состояния 0 означает, что все в порядке а также 0 означает false в логическом выражении.

Однако это было бы плохо, верно:

if (!foo()) {
  // what to do if true
} else {
  // what to do if false
}
6
задан Jason Marcell 16 September 2011 в 21:02
поделиться