Как выйти из функции void c
Перейти к содержимому

Как выйти из функции void c

  • автор:

EXIT()

Функция exit(), находящаяся в стандартной библиотеке, вызывает немедленное окончание работы программы. Поскольку функция exit() останавливает выполнение программы и форсирует возврат в операционную систему, она используется для управления устройствами, и ее использует подавляющее большинство программ. Функция exit() имеет следующий вид:

void exit (int статус);

Она использует заголовочный файл stdlib.h. Значение статуса возвращается в операционную систему.

Для индикации корректности завершения работы exit() традиционно вызывается с аргументом 0.

Другие аргументы используются для индикации различного рода ошибок. Можно также использовать предопределенные макросы EXIT_SUCCESS и EXIT_FAILURE в качестве значений для статуса.

exit() используется, когда условия выполнения программы неудовлетворительны. Например компьютерная игра может требовать специальный графический адаптер. Функция main() данной игры может выглядеть следующим образом:

#include
int main(void)
if (!special_adaptor()) exit(1);
play ();
return 0;
>

где special_adaptor() — это определенная пользователем функция, возвращающая истину, если необходимый адаптер присутствует. Если карта в системе отсутствует, то данная функция возвращает ложь и программа завершает работу.

В другом примере exit() используется для выхода из программы и возврата в операционную систему

void menu(void)
char ch;
printf («1. Check Spelling\n»);
printf («2. Correct Spelling, Errors\n»);
printf(«3. Display Spelling Errors\n»);
printf(«4. Quit\n»);
printf(» Enter your choice: «);
do ch = getchar(); /* чтение клавиатуры */
switch(ch)
case ‘1’:
check_spelling();
break;
case ‘2’:
correct_errors();
break;
case ‘3’:
display_errors ();
break;
case ‘4’:
exit(0); /* возврат в ОС*/
>
>
while(ch!=’1′ && ch!=’2′ && ch!=’3′);
>

Как выйти из функции void c

Возможно ли, Выйти из функции, если она возвращает «void». Что-то вроде «return», только без возвращения значения, просто перейти к коду после вызова функции.
Спасибо.

Re: Выйти из функции, если она возвращает «void»?

От: VuDZ
Дата: 26.02.02 23:58
Оценка: 3 (1)

Здравствуйте Алексей, Вы писали:

А>Возможно ли, Выйти из функции, если она возвращает «void». Что-то вроде «return», только без возвращения значения, просто перейти к коду после вызова функции.
А>Спасибо.

void Foo( void )< // do something if (bError) return; // do something another >

Re: Выйти из функции, если она возвращает «void»?

От: SDA
Дата: 26.02.02 23:58
Оценка: 3 (1)

Здравствуйте Алексей, Вы писали:

А>Возможно ли, Выйти из функции, если она возвращает «void». Что-то вроде «return», только без возвращения значения, просто перейти к коду после вызова функции.
А>Спасибо.

void MyFunc() < if(false) return; >
return;

Выход из функции

Имеется два способа окончания работы функции и передачи управления вызывающему коду. Первый способ предполагает достижение последнего оператора функции, после чего работа функции заканчивается при встрече >. (Конечно, фигурной скобки на самом деле нет в объектном коде, но никто не мешает нам так думать.) Например, следующая функция выводит на экран строку:

void pr_reverse(char *s)
register int t;
for(t=strlen(s) -1; t > -1; t-) printf («%c», s [t]);
>

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

Тем не менее, не многие функции используют данный метод окончания своего выполнения. Большинство функций используют оператор return для окончания выполнения с целью возврата значения или упрощения кода функции и увеличения его эффективности путем создания нескольких точек выхода. Важно запомнить, что функция может иметь несколько операторов return. Например, функция, показанная ниже, возвращает или индекс первого появления подстроки, указываемой в s1, в строке, указываемой в s2, или —1, если не обнаружено совпадений:

int find_substr (char *s1, char *s2)
register int t;
char *p, *p2;
for(t=0; s1[t]; t++)
p = &s1[t];
p2 = s2;
while (*p2 && *p2==*p)
p++;
p2++;
>
if(!*p2) return t;
>
return -1;
>

Надо обратить внимание, как два оператора return упрощают функцию.

Как выйти из функции void c

Форумчанин

Регистрация: 04.06.2011

Сообщений: 104

C++, прерывание процедуры (функции типа void)

Здравствуйте.
Как мне прервать работу функции типа void?
Нужно что-нибудь вроде break как в цикле, или return как в функции, возвращающей значение.
Спасибо

Форумчанин

Регистрация: 24.12.2012

Сообщений: 639

чем вас ретурн не устроил?

ICQ: 677936656 Gmail: ekEmbed@gmail.com

Ezhik Kihze
Посмотреть профиль
Найти ещё сообщения от Ezhik Kihze

Форумчанин

Регистрация: 04.06.2011

Сообщений: 104

В void функции можно использовать return?

Пользователь

Регистрация: 25.03.2012

Сообщений: 60

Для выхода из void функции, можно после слова return поставить пробел вместо возвращаемого значения. Написать «return ;» или «return void();». В VS2010 работает.

Последний раз редактировалось Arrioh; 04.01.2013 в 21:59 .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *