Why the user-defined function needs to be before the main function for a function pointer to work.
This one works:
#include <stdio.h>
int add(int a, int b)
{
int c;
c = a + b;
return c;
}
int main()
{
int a, b, sum;
int (*ab)(int, int) = &add; // Declaration and initialization of function pointer
sum = (*ab)(1, 2); // Dereferencing of function pointer
printf("1 + 2 = %d", sum);
return 0;
}
But why this one doesn't work:
#include <stdio.h>
int main()
{
int a, b, sum;
int (*ab)(int, int) = &add; // Declaration and initialization of function pointer
sum = (*ab)(1, 2); // Dereferencing of function pointer
printf("1 + 2 = %d", sum);
return 0;
}
#include <stdio.h>
int add(int a, int b)
{
int c;
c = a + b;
return c;
}
int main()
{
int a, b, sum;
int (*ab)(int, int) = &add; // Declaration and initialization of function pointer
sum = (*ab)(1, 2); // Dereferencing of function pointer
printf("1 + 2 = %d", sum);
return 0;
}