Так что же означает "возврат 0"?
Я достаточно разбираюсь в PHP, но начал работать с C. Я видел код
return 0;
в конце функций, которые не возвращают значение. Это не используется в PHP, потому что если функция не имеет возврата, автоматически возвращается значение NULL.
Все, что я прошу, на простом английском, что делает return 0
на самом деле? Это похоже на PHP, где он возвращает свой аргумент как значение вызова функции? Это просто хорошая практика?
Я знаю, что этот вопрос задавался много раз, но я спрашиваю его с точки зрения разработчика PHP. Ответы, сделанные Google, не были настолько краткими.
Ответы
Ответ 1
Это как php, где он возвращает свой аргумент как значение вызов функции? Это просто хорошая практика?
Да, PHP и многие другие языки заимствовали ключевое слово return
из 'C'. И во всех языках ключевое слово return
имеет ту же функцию - возврат из функции. Все, что следует за return
ключевым словом, - это значение, которое возвращается вызывающему.
Это хорошая практика? Да и Нет. Не все функции должны возвращать значение. И немало в стандартной библиотеке даже не возвращают никакой ценности. Следовательно, их возвращаемый тип void
.
Но функция main
должна возвращать 0
(также EXIT_SUCCESS
), чтобы идентифицировать, что программа выполнена успешно. И -1 в противном случае (также EXIT_FAILURE
)
EDIT: (Спасибо @KeithThompson):
EXIT_FAILURE
определена реализация. 1
является общим значением EXIT_FAILURE
, но все дело в том, что вам не нужно знать.
Ответ 2
По историческим причинам можно написать return 0;
для возврата из функции, объявленной как void
, например:
void foo( /* arguments */ )
{
/* do things */
return 0;
}
Это ничего не делает, и 0
(или все, что вы там положили) выбрасывается. Кроме того, разумные компиляторы выдадут вам предупреждение, если вы это сделаете. Так что не делайте этого.
Ответ 3
Функции в C возвращают int по умолчанию, если не задан другой тип возвращаемого значения. return 0 будет хорошей практикой, чтобы убедиться, что функция возвращает известное значение, в отличие от некоторого случайного значения, в случае, если вызывающий объект смотрит на возвращаемое значение.
Ответ 4
Он буквально возвращает int из 0.
Ответ 5
Язык программирования C позволяет запускать или возвращать программы из основной функции для достижения успеха или отказа сигнала путем возврата целого числа или возврата макросов EXIT_SUCCESS
и EXIT_FAILURE
. В Unix они равны 0 и 1 соответственно. Программа C также может использовать функцию exit()
, определяющую целочисленное состояние или макрос выхода в качестве первого параметра.
Помимо макросов EXIT_SUCCESS
и EXIT_FAILURE
, стандарт C не определяет значение кодов возврата. Правила использования кодов возврата различаются на разных платформах.
Ответ 6
В C вам не нужно возвращать значение только в том случае, если вы объявляете функцию с void в начале ее.
Первый пример:
#include <stdio.h>
int main()
{
printf("Hello World!");
return 0; // you have to use return because main starting with int
}
Второй пример:
#include <stdio.h>
void main()
{
printf("Hello World!");
//in this case return is useless, main is a void function
}