From 7d7ac8ec8214d52a9f4c46358241539a05e04226 Mon Sep 17 00:00:00 2001 From: Peace Date: Thu, 24 Apr 2025 17:17:38 +0900 Subject: [PATCH] function pointer --- practice/lc_functionPointers.c | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 practice/lc_functionPointers.c diff --git a/practice/lc_functionPointers.c b/practice/lc_functionPointers.c new file mode 100644 index 0000000..26225f2 --- /dev/null +++ b/practice/lc_functionPointers.c @@ -0,0 +1,37 @@ +#include +#include + +void someFunction(int arg) +{ + printf("This is someFunction being called and arg is: %d\n", arg); + printf("Now, leaving the funciton!\n"); +} + +int compare(const void* left, const void* right) +{ + return (*(int*)right - *(int*)left); +} + +int main() +{ + void (*pf)(int); + pf = &someFunction; + printf("We are about to call someFunction() using a pointer!\n"); + (pf)(5); + printf("Wow that was cool!"); + + int (*cmp)(const void*, const void*); + cmp = &compare; + + int iarray[] = {1,2,3,4,7,5,6,9,8}; + qsort(iarray, sizeof(iarray) / sizeof(*iarray), sizeof(*iarray), cmp); + + int c = 0; + while (c < sizeof(iarray) / sizeof(*iarray)) + { + printf("%d\t", iarray[c]); + c++; + } + + return 0; +} \ No newline at end of file