Язык Turbo C 2.0
a - простые переменные
j - глобальные переменные
s () - функции
aa - указатели
1 - 12k, 3 - 13k, 4 - 16k
*/
#include <conio.h>
#include <setjmp.h>
#include <stdio.h>
#include <stdlib.h>
#define M 1 /* нет памяти */
#define N 2 /* ошибка файла */
int j = 7;
jmp_buf p; /* буфер нелокального перехода */
s (); t (); u ();
v (); w (); x ();
main (int a, char *aa [], char *ab [])
{
int d;
int j = 10;
printf ("1.\n");
printf ("a) j = %i.\n", j);
j++;
{
int j = 200;
printf ("b) j = %i.\n", j);
j++;
}
printf ("c) j = %i.\n", j++);
s ();
printf ("d) j = %i.\n", j++);
t ();
printf ("e) j = %i.\n", j++);
t ();
printf ("f) j = %i.\n", j++);
printf ("\n2. ");
if (a < 2)
printf ("Вы забыли набрать имя.\n");
else
printf ("Привет! %s!\n", aa [1]);
printf ("\n3. Количество аргументов командной строки: %i.\n", a);
printf ("Аргументы командной строки:\n");
for (d = 0; d < a; d++) printf ("%s\n", aa [d]);
printf ("Аргументы состояния среды:\n");
for (d = 0; ab [d]; d++) printf ("%s\n", ab [d]);
puts ("\n4. Вызываем 'u ()'.");
u ();
puts ("Конец работы функции 'u ()'.");
getch ();
printf ("\n");
}
s ()
{
int j = 77;
printf ("g) j = %i.\n", j);
j++;
}
t ()
{
printf ("h) j = %i.\n", j);
j++;
}
u ()
{
int a;
if ((a = setjmp (p)) != 0)
{
switch (a)
{
case M: puts ("Нет памяти."); return;
case N: puts ("Не могу открыть файл."); return;
}
}
printf ("Результат: %i.\n", v ());
}
v () {w ();}
w ()
{
void *a;
if ((a = malloc (4096)) == NULL) longjmp (p, M); /* ошибка - недостаточно памяти */
x ();
free (a);
return 1;
}
x ()
{
FILE *a;
if ((a = fopen ("zz.txt", "r")) == NULL) longjmp (p, N); /* ошибка открытия файла */
fclose (a);
return 2;
}
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Комментарии 1
/* p7 - 116
Язык Turbo C 2.0
a - простые переменные
j - функции
1 - 20k
*/
#include <conio.h>#include <math.h>#include <stdio.h>double j (double);
double k (double);
double l (double (*a) (double)); /* указатель на функцию как аргумент функции */
main ()
{
float a, b;
double (*d) (double); /* переменная - указатель на функцию */
printf ("1.\n"
a = 1.1;
d = j; /* указатель на функцию */
b = (*d) (a);
printf ("1) a = %.4g, b = %.4g.\n", a, b);
b = d (a);
printf ("2) a = %.4g, b = %.4g.\n", a, b);
d = sin;
b = d (a);
printf ("3) a = %.4g, sin (a) = %.4g.\n", a, b);
b = (*d) (2.5);
printf ("4) a = %.
...Ещё/* p7 - 116
Язык Turbo C 2.0
a - простые переменные
j - функции
1 - 20k
*/
#include <conio.h>#include <math.h>#include <stdio.h>double j (double);
double k (double);
double l (double (*a) (double)); /* указатель на функцию как аргумент функции */
main ()
{
float a, b;
double (*d) (double); /* переменная - указатель на функцию */
printf ("1.\n"
a = 1.1;
d = j; /* указатель на функцию */
b = (*d) (a);
printf ("1) a = %.4g, b = %.4g.\n", a, b);
b = d (a);
printf ("2) a = %.4g, b = %.4g.\n", a, b);
d = sin;
b = d (a);
printf ("3) a = %.4g, sin (a) = %.4g.\n", a, b);
b = (*d) (2.5);
printf ("4) a = %.4g, b = %.4g.\n", a, b);
b = l
printf ("5) a = %.4g, b = %.4g.\n", a, b);
b = l (cos);
printf ("6) a = %.4g, b = %g.\n", a, b);
b = l
printf ("7) a = %.4g, b = %.4g.\n", a, b);
getch ();
printf ("\n"
}
double j (double a)
{
puts ("a) В функции 'j ()'."
return a;
}
double k (double a)
{
puts ("b) В функции 'k ()'."
return a * a;
}
double l (double (*a) (double b)) /* указатель на функцию как аргумент функции */
{
printf ("c) В функции 'l ()', %.4g.\n", a (3));
return a (3);
}