Моя программа написана на C для Linux и имеет много функций с различными шаблонами для возвращаемых значений:
1) один или два возврата n
в случае успеха и -1
в случае ошибки.
2) некоторые возвращают 0
при успехе и -1
при неудаче.
3) некоторые возвращают 1 при успехе и 0 при неудаче (я обычно отвергаю, используя логический тип).
4) указатели возвращают 0
при сбое (я обычно отвергаю, используя NULL
).
Моя путаница возникает по поводу первых трех - функции, которые возвращают указатели, всегда возвращают 0
при сбое, это просто.
Первый вариант обычно включает функции, которые возвращают длину, которая может быть только положительной.
Второй вариант, обычно связанный с функциями обработки командной строки, но я не уверен, что он корректен, возможно, лучшими значениями будут EXIT_SUCCESS и EXIT_FAILURE?
Третий вариант предназначен для функций, которые удобно и естественно вызывать в условиях, и я обычно эмулирую здесь логический тип, используя int
значения 1 и 0.
Несмотря на то, что все это кажется достаточно разумным, я все еще нахожу области, где это не так ясно или очевидно, какой стиль использовать при создании функции или какой стиль используется, когда я хочу ее использовать.
Так, как я могу внести ясность в мой подход при выборе типа возврата здесь?