Должен ли я вернуть 0 или 1 для успешной работы?

Возможный дубликат:
Обработка ошибок в коде C
Какое возвращаемое значение вы должны использовать для неудачного вызова функции в C?

Я всегда использую 0, но на самом деле он не читается, if , while и т. Д.

Должен ли я вернуться? Почему главная функция return 0 для успеха?

Он определяется стандартом C как 0 для успеха (кредиты идут на hvd).

Но

Для большей переносимости вы можете использовать macros EXIT_SUCCESS и EXIT_FAILURE для обычного значения статуса для успеха и отказа соответственно. Они объявляются в файле stdlib.h .

(Я говорю о стоимости, возвращенной ОС из основного , выходного или аналогичных вызовов)

Что касается вашей функции, верните то, что вы пожелаете, и сделайте код более удобочитаемым, если вы держите его так же, как и ваши программы.

Причина, по которой main успех 0 заключается в том, что он используется в качестве кода выхода приложения для операционной системы, где 0 обычно означает успех, а 1 (или выше) означает сбой. (Конечно, вы всегда должны использовать предопределенные macros EXIT_SUCCESS и EXIT_FAILURE .)

Внутри приложения, однако, более естественно использовать нуль для отказа и ненулевой для успеха, так как возвращаемое значение может быть непосредственно использовано в if как в:

 if (my_func()) { ... } 

Если вы возвращаете логический статус, вы можете ввести int и использовать это. Это делает возвращаемый тип ваших функций очевидным, и вам (и другим) не придется проверять, возвращает ли он 0 или 1 навсегда .

 typedef int BOOL; #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif BOOL myfunc() { ... return TRUE; }