Advertisement
bgeri74

Kommentelt verzió

Mar 3rd, 2016
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.41 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. /* Függvénypointerek*/
  4. /*Függvénymutató egy olyan függvényre, ami 2 int változót vár argumentumként. */
  5. typedef int (*Ffgvptr)(int, int);
  6. /* Függvénymutató egy olyan függvényre, ami egy olyan függvényre mutat, ami intet ad vissza és két intet vár bemenetként.
  7.    Maga a függvénymutató egy argumentumot vár bemenetként, egy int változót. */
  8. typedef int (*(*Gfgvptr) (int)) (int, int);
  9.  
  10. /* Függvény két változó értékének összeadására. */
  11. int
  12. f1 (int a, int b)
  13. {
  14.     return a + b;
  15. }
  16.  
  17. /* Függvénymutató, ami olyan függvényre mutat, ami egy olyan függvényre mutat, ami
  18.    két intet vár argumentumként és intet ad vissza. Ezen felül van 1 paramétere a függvénymutatónak, egy int (c).*/
  19. Ffgvptr g1(int c)
  20. {
  21.     printf ("%d\n", c);
  22.     return f1;
  23. }
  24. int
  25. main ()
  26. {
  27.  
  28.     /* Függvénymutató, amely két int változót vár argumentumként. */
  29.     Ffgvptr f;
  30.  
  31.     /* A mutatót "ráállítjuk" az f1 függvényre*/
  32.     f = f1;
  33.  
  34.     /* Kiírjuk az f által mutatott függvény eredményét.*/
  35.     printf ("%d\n", f (2, 2));
  36.  
  37.     /* Újabb függvénymutató*/
  38.     Gfgvptr g;
  39.     /* A mutatót "ráállítjuk" a g1-re. */
  40.     g = g1;
  41.  
  42.     /*f-et ráállítjuk a g eredményeként visszaadott függvényre.*/
  43.     f = g (42);
  44.  
  45.     /* Kiírjuk az f által mutatott függvény eredményét.*/
  46.     printf ("%d\n", f (2, 2));
  47.  
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement