C/C++
Что означает оператор return ; на языке Си.
С одной стороны, return - это то, что возвращает функция. С другой - это результат выполнения функции (0 - выполнение успешно, 1,2,3... - пронумерованные ошибки). Так что за бардак? Допустим, я сделаю функцию которая складывает два числа, назову её summ(a,b). Такая функция почти всегда будет использоваться, чтобы сложить что-то кроме нулей. Например summ(5,4) превратится в 9. В то же время 9 - это код ошибки под номером 9. Но ведь функция завершилась успешно, зачем ей сообщать об ошибке?
Оператор return немедленно прерывает выполнение функции и возвращает значение (если таковое имеется) и передаёт управление программой в точку вызова данной функции. Функция main является точкой входа в программу, поэтому возвращает значение типа int коду, который её вызвал, то есть операционной системе и сообщает одно из двух значений: 0 – если программа завершилась корректно, либо 1 – если случилось аварийное завершение программы. Вы также можете определить пользовательскую функцию типа int, которая будет возвращать коды целочисленных ошибок. А если вам нужна функция сложения двух целых типа int, то она вам и будет возвращать нужную сумму, но существует опасность получить значения с переполнением типа данных. Например,
#include
int sum(int a, int b) {
return a + b;
}
int main(void) {
int a = 1825476328;
int b = 1478523691;
printf("%i + %i = %i\n", a, b, sum(a, b));
return 0;
}
Во избежание подобных ошибок результат суммы следует приводить к более широкому типу, например long long #include
long long sum(int a, int b) {
return (long long)a + (long long)b;
}
int main(void) {
int a = 1825476328;
int b = 1478523691;
printf("%i + %i = %lli\n", a, b, sum(a, b));
return 0;
}
"0 - выполнение успешно, 1,2,3... - пронумерованные ошибки" - это только обычно применяемое соглашение для интерпретации другими программами выдаваемого функцией int main результата. А вообще-то программист может использовать это значение как хочет :)
И не смешивай функцию main и твою личную функцию summ. Для main действуют особые правила.
И не смешивай функцию main и твою личную функцию summ. Для main действуют особые правила.
Смысл возвращаемого результата зависит от функции.
В случае с вашей суммирующей функцией число 9 - это сумма двух чисел.
В случае с функцией main число 9 - это код ошибки.
А в случае с функцией countYourMomsChins число 9 - это число подбородков у мамы.
В случае с вашей суммирующей функцией число 9 - это сумма двух чисел.
В случае с функцией main число 9 - это код ошибки.
А в случае с функцией countYourMomsChins число 9 - это число подбородков у мамы.
Вы сами решаете, как интерпретировать возвврат функции. Возвращение кода ошибки - это некое негласное соглашение, которое не является частью языка, и используется далеко не всегда. Возьмите вон функцию синуса. Она почти при любых аргументах сообщает об ошибке что ли?) Когда вы проектируете функцию, вы сами решаете, что и в каком случае она выдает.
Оператор return в языке C используется для завершения выполнения функции и возврата значения. Когда функция достигает оператора return, она завершается, и значение, указанное в операторе return, возвращается вызывающей стороне.
Когда функция выполняется успешно и не возникает никаких ошибок, обычно возвращается 0, чтобы указать успешное выполнение. Это соглашение, принятое во многих программных интерфейсах и операционных системах.
В вашем примере функции summ(a, b), если она успешно складывает два числа и возвращает результат, то можно вернуть это значение, например:
В этом случае, когда вы вызываете функцию summ(5, 4), она вернет 9, и это значение можно использовать в дальнейшем коде.
Коды ошибок, как вы упомянули (например, 1, 2, 3...), обычно используются для указания на конкретные ошибки или исключительные ситуации, которые могут возникнуть в функции. Если функция сталкивается с ошибкой, она может вернуть соответствующий код ошибки, чтобы вызывающая сторона могла обработать эту ошибку или принять соответствующие меры.
Таким образом, возвращение значения из функции и возвращение кода ошибки - это две разные концепции. Возвращение значения указывает на успешное выполнение функции и предоставляет результат, а коды ошибок используются для обозначения ошибочных ситуаций, которые могут возникнуть в процессе выполнения функции.
Когда функция выполняется успешно и не возникает никаких ошибок, обычно возвращается 0, чтобы указать успешное выполнение. Это соглашение, принятое во многих программных интерфейсах и операционных системах.
В вашем примере функции summ(a, b), если она успешно складывает два числа и возвращает результат, то можно вернуть это значение, например:
int summ(int a, int b) {
int result = a + b;
return result;
}
В этом случае, когда вы вызываете функцию summ(5, 4), она вернет 9, и это значение можно использовать в дальнейшем коде.
Коды ошибок, как вы упомянули (например, 1, 2, 3...), обычно используются для указания на конкретные ошибки или исключительные ситуации, которые могут возникнуть в функции. Если функция сталкивается с ошибкой, она может вернуть соответствующий код ошибки, чтобы вызывающая сторона могла обработать эту ошибку или принять соответствующие меры.
Таким образом, возвращение значения из функции и возвращение кода ошибки - это две разные концепции. Возвращение значения указывает на успешное выполнение функции и предоставляет результат, а коды ошибок используются для обозначения ошибочных ситуаций, которые могут возникнуть в процессе выполнения функции.
return - это то что возвращает функция и никак иначе. То что значение return отличное от 0 в функции main выводит сообщение об ошибке при компиляции, не более чем соглашение: "Если main возвращает не 0, то есть ошибка". Вы можете возвращать в своих функциях любое значение (желательно совпадающее с типом данных указанных при создании функции) и всё будет нормально.
Похожие вопросы
- Решить задачу на языке СИ
- Написать код на языке си
- Написать программу на языке Си
- Помогите с решением задачи на языке СИ
- Си!!! БЕЗ УКАЗАТЕЛЕЙ, ЯЗЫК СИ
- Упорядочить элементы массива по возрастанию на языке Си
- Создать файл ABONENT.dat, содержащий записи следующей структуры: ФИО абонента; его номер телефона. на языке си++
- Помогите с задачей на языке СИ
- Написать код на языке Си
- Написать программу на языке Си, которая решит эту задачу: