Язык Turbo C 2.0
Нелокальный переход */
#include <conio.h>
#include <setjmp.h>
#include <stdio.h>
#include <stdlib.h>
#define A 1
#define B 2
jmp_buf d;
aa (); ab (); ac ();
ad ();
main ()
{
int a;
/* 121.48.1 Нелокальный переход */
puts ("1. Вызываем aa ().");
aa ();
puts ("- 1 - Конец функции aa ().");
/* 67.2.2 Латинский алфавит */
printf ("\n");
for (a = 'a'; a <= 'z'; a++)
printf ("%c %i\t", a, a);
/* 79.3.3 Русский алфавит */
printf ("\n\n");
for (a = 'А'; a <= 'Я'; a++)
printf ("%c ", a);
getch ();
printf ("\n\n");
}
aa ()
{
int a;
if ((a = setjmp (d)) != 0)
{
switch (a)
{
case A: puts ("Нет памяти."); return 0;
case B: puts ("Не могу открыть файл."); return 0;
}
}
printf ("Результат %i.\n", ab ());
}
ab () {ac ();}
ac ()
{
void *g;
if ((g = malloc (4096)) == NULL) longjmp (d, A);
ad ();
free (g);
return 1;
}
ad ()
{
FILE *g;
if ((g = fopen ("data.txt", "r")) == NULL) longjmp (d, B);
fclose (g);
return 2;
}

Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев