Я думаю, что было сделано, чтобы подобный тип возврата был среди всех функций, возвращающих целочисленное значение.В противном случае программист должен каждый раз проверять, возвращает ли эта функция int
или boolean
.
Первоначально bool
даже не был типом в C: я не знаю, что это был также выбордля ретро-совместимости.
В некоторых случаях у вас нет даже выбора: возьмите в качестве примера следующее:
int fflush(FILE *fp)
Возвращает: 0, если все в порядке, EOF при ошибке
int fclose(FILE *fp);
Возвращает: 0, если в порядке, EOF при ошибке
int atexit(void (*func)(void))
Возвращает: 0, если в порядке, ненулевое значение при ошибке
EOF
- макрособычно определяется как -1
, но это не гарантируется.В некоторых других случаях вы хотите указать ошибку