Return 0 в c что это за программа

Функция main в программе C возвращает 0, потому что метод main() определяется и импортируется первым, когда код запускается в памяти. Реализованы самые первые команды в функции main(). Пока все команды кода не будут выполнены, программа должна быть удалена из памяти.

Возврат 0 указывает на то, что реализация программы завершена и теперь процессор может быть загружен. Даже если мы не сможем выполнить задачу, неопределенность сохраняется из-за того, что по окончании реализации программы сразу же запустится команда return void. Он колеблется между компиляторами и завершает работу приложения, а также через внешнюю память.

В результате мы должны сами завершить программу и использовать возврат 0, чтобы должным образом остановить выполнение. В этом артефакте мы подробно рассмотрим возврат 0.

Используйте return 0 в основной функции

Оператор return (C)

Оператор return завершает выполнение функции и возвращает управление вызывающей функции. Выполнение возобновляется в вызывающей функции в точке сразу после вызова. Оператор return может возвращать значение, передавая его вызывающей функции. Дополнительные сведения см. в статье Тип возвращаемого значения.

C return statement

Синтаксис

jump-statement :
return expression необ. ;

Значение expression , если оно имеется, возвращается вызывающей функции. Если expression параметр опущен, возвращаемое значение функции не определено. Параметр «выражение», если он присутствует, вычисляется и преобразуется к типу, возвращаемому функцией. Если оператор return содержит выражение в функциях, имеющих тип возвращаемого значения void , то компилятор выдает предупреждение, а выражение не вычисляется.

Если в определении функции оператор return не указан, то после выполнения последнего оператора вызванной функции управление автоматически возвращается вызывающей функции. В этом случае возвращаемое значение вызванной функции не определено. Если функция имеет тип возвращаемого значения, отличный от void , это считается серьезной ошибкой и компилятор выводит предупреждающее диагностическое сообщение. Если функция имеет тип возвращаемого значения void , то такое поведение приемлемо, но может считаться плохим стилем. Чтобы ваше намерение было понятным, используйте простой оператор return .

В качестве лучшей методики разработки рекомендуется всегда указывать тип возвращаемого значения для ваших функций. Если возвращаемое значение не требуется, объявите функцию как имеющую тип возвращаемого значения void . Если тип возвращаемого значения не указан, компилятор C предполагает, что по умолчанию используется тип возвращаемого значения int .

Читайте также:
Что за программа комплимент

Многие программисты используют круглые скобки для заключения expression аргумента return оператора . Однако использовать эти скобки в языке C необязательно.

Если компилятор обнаруживает операторы, размещенные после return , он может вывести предупреждающее диагностическое сообщение о недоступном для выполнения коде.

Why #include? | Why int main() | Why return 0 | Simple C Program | Log2Base2

В функции main оператор return и выражение являются необязательными. То, что происходит с указанным возвращаемым значением, зависит от реализации. Только для Майкрософт:реализация C от Майкрософт возвращает значение выражения процессу, вызвавшему программу, например cmd.exe . Если выражение return не указано, среда выполнения C от Майкрософт возвращает значение, соответствующее успешному (0) или неудачному (ненулевое значение) выполнению.

Пример

В этом примере показана одна программа из нескольких частей. Она демонстрирует оператор return и использование его для завершения выполнения функции и, при необходимости, возврата какого-то значения.

// C_return_statement.c // Compile using: cl /W4 C_return_statement.c #include // for INT_MAX #include // for printf long long square( int value ) < // Cast one operand to long long to force the // expression to be evaluated as type long long. // Note that parentheses around the return expression // are allowed, but not required here. return ( value * (long long) value ); >

Функция square возвращает квадрат своего аргумента, используя более широкий тип для избежания арифметической ошибки. Только для систем Майкрософт: в реализации C от Майкрософт тип long long достаточно велик, чтобы вмещать произведение двух значений int без переполнения.

Скобки вокруг выражения return в функции square вычисляются как часть выражения, и использовать их в операторе return не требуется.

double ratio( int numerator, int denominator ) < // Cast one operand to double to force floating-point // division. Otherwise, integer division is used, // then the result is converted to the return type. return numerator / (double) denominator; >

Функция ratio возвращает частное двух int аргументов в виде значения double с плавающей запятой. Выражение return принудительно использует операцию с плавающей запятой путем приведения одного из операндов к типу double . В противном случае будет использоваться оператор целочисленного деления, а дробная часть будет потеряна.

Читайте также:
Source программа что это

void report_square( void ) < int value = INT_MAX; long long squared = 0LL; squared = square( value ); printf( «value = %d, squared = %lldn», value, squared ); return; // Use an empty expression to return void. >

Функция report_square вызывает square со значением параметра INT_MAX — самым большим целым числом со знаком, которое помещается в int . Результат типа long long сохраняется в squared , а затем выдается в выводе. Функция report_square имеет тип возвращаемого значения void , поэтому она не содержит выражения в операторе return .

void report_ratio( int top, int bottom ) < double fraction = ratio( top, bottom ); printf( «%d / %d = %.16fn», top, bottom, fraction ); // It’s okay to have no return statement for functions // that have void return types. >

Функция report_ratio вызывает ratio со значениями параметров 1 и INT_MAX . Результат типа double сохраняется в fraction , а затем выдается в выводе. Функция report_ratio имеет тип возвращаемого значения void , поэтому явно возвращать значение не требуется. Выполнение report_ratio не дает результата и не возвращает вызывающей функции никакого значения.

int main()

Функция main вызывает две функции: report_square и report_ratio . Поскольку report_square не принимает параметров и возвращает void , результат не присваивается переменной. Аналогичным образом функция report_ratio возвращает void , поэтому ее возвращаемое значение тоже не сохраняется. После вызова каждой из этих функций выполнение продолжается в следующем операторе. Затем main возвращает значение 0 (обычно свидетельствующее об успешном выполнении), чтобы завершить программу.

Чтобы скомпилировать пример, создайте файл исходного кода с именем C_return_statement.c . Затем скопируйте весь пример кода в показанном здесь порядке. Сохраните файл и скомпилируйте его в окне Командной строки разработчика с помощью следующей команды:

cl /W4 C_return_statement.c

После этого, чтобы запустить пример кода, введите C_return_statement.exe в командной строке. Выходные данных в этом примере выглядят следующим образом:

value = 2147483647, squared = 4611686014132420609 1 / 2147483647 = 0.0000000004656613

Читайте также:
Что за программа timeshift

Источник: learn.microsoft.com

Return 0 в c что это за программа

Функция может иметь результат — некоторое значение, которое оно возвращает во внешний код. Для возвращения результата функция применяет оператор return , которые имеет следующие способы использования:

return; return выражение;

Первая форма может использоваться в тех функциях, которые не возвращают никакого значения, то есть имеют в качестве возвращаемого типа void .

Вторая форма применяется, если функция имеет в качестве возвращаемого типа любой тип, кроме void . Выражение после оператора return представляет возвращаемое значение.

В прошлой теме была определена функция sum , которая в качестве возвращаемого типа имела тип void , то есть по факту ничего не возвращает:

void sum(int x, int y)

Хотя эта функция не использует явно оператор return , но компилятор сам его добавляет автоматически в конец функции:

void sum(int x, int y)

Эти оба определения фактически равнозначны.

Но также функция может возвращать какое-то конкретное значение. Например, изменим функцию sum, чтобы она возвращала сумму чисел:

#include int sum(int x, int y) < return x + y; >int main(void)

Теперь функция sum в качестве возвращаемого типа имеет тип int . Если тип функции отличен от void , то функция обязательно должна возвращать значение данного типа. Для возвращения значения применяется оператор return , после которого указывается возвращаемое значение.

В данном случае функция sum возвращает сумму параметров:

return x + y;

Если функция возвращает какое-либо значение, то при ее вызове мы можем получить это значение в переменную:

int result = sum(x, y);

Прототип функции sum будет выглядеть так:

int sum(int, int);

Логика возвращения результата может быть более сложной. Например:

#include int calculate(int x, int y, char operation) < if(operation==’+’) < return x + y; >else if(operation==’-‘) < return x — y; >else < return 0; >> int main(void)

В данном случае функция calculate() принимает три параметра. Первые два параметра представляют числа, над которыми выполняется арифметическая операция. А третий параметр представляет знак операции. И в зависимости от знака операции функция возвращает либо сумму, либо разность чисел. Или число 0, если операция не поддерживается.

Источник: metanit.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru