vgsamsonov

love story "Пикантные штучки"

Dec 2nd, 2021
583
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //указатели на функцию
  2. #include <stdio.h>
  3. #include <math.h>
  4. double f1(int);
  5. int f2(void);
  6. int f3(void);
  7. int main()
  8. {
  9.     int(*pt2)(void);
  10.     pt2 = f2;
  11.     pt2();
  12.     pt2 = f3;
  13.     pt2();
  14.     //Массив указателей на функцию
  15.     int (*pMas[])(void) = {f2,f3};
  16.     for(int i=0;i<2;i++)pMas[i]();
  17.     pMas[1]();
  18.     long Mas[3] = {(long)f1,(long)f2,(long)f3};
  19.     double(*pt1)(long);
  20.     pt1 = (double(*)(long))Mas[0];
  21.     double m = pt1(0);
  22.     printf("\n m = %f\n",m);
  23.     for(int i = 1;i<3;i++)
  24.     {
  25.         pt2=(long(*)())Mas[i];
  26.         pt2();
  27.     }
  28.     //вызовов стандартной функции по указателю
  29.     printf("\n");
  30.     double f0(double);
  31.     double(*ptrf)(double);
  32.     ptrf = cos;
  33.     printf("%f\n",ptrf(0.7));
  34.     ptrf = sin;
  35.     printf("%f\n",ptrf(0.7));
  36.     return 0;
  37. }
  38. double f1(int a)
  39. {
  40.     printf("\n double f1(int)");
  41.     double b = a;
  42.     if(!a) return ++b;
  43.     else return 10/b;
  44. }
  45. int f2()
  46. {
  47.     printf("\n int f2(void)");
  48.     return 200;
  49. }
  50. int f3()
  51. {
  52.     printf("\n int f3(void)");
  53.     return 300;
  54. }
  55.  
RAW Paste Data