fork download
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. // function pointer .
  5. typedef int (*CompareFunc)(const void *, const void *);
  6.  
  7. int even_order(const void *first_arg, const void *second_arg)
  8. {
  9. int first = *(int *)first_arg;
  10. int second = *(int *)second_arg;
  11. if (first < second)
  12. {
  13. return -1;
  14. }
  15. else if (first == second)
  16. {
  17. return 0;
  18. }
  19. else
  20. {
  21. return 1;
  22. }
  23. }
  24.  
  25. // Function pointer a parametre veriyoruz .
  26. void sort(int array[], int size, CompareFunc compare)
  27. {
  28. qsort(array, size, sizeof(int), compare);
  29. }
  30.  
  31. int main()
  32. {
  33. int array[5];
  34. int i;
  35. /* fill array */
  36. for (i = 0; i < 5; i++)
  37. {
  38. array[i] = 10 - 2 * i;
  39. }
  40.  
  41. // function pointer a sort uyguluyoruym .
  42. sort(array, 5, even_order);
  43.  
  44. for (i = 0; i < sizeof(array) / sizeof(int); i++)
  45. {
  46. printf("%d\n", array[i]);
  47. }
  48. return 0;
  49. }
  50.  
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
2
4
6
8
10