I hope the commented code below helps you understand the difference between function call, declaration, and definition.
#include <stdio.h>
// Function declaration tells the compiler what the signature of the function is,
// but it does not tell how the function works.
// A function declaration must come before any function call.
int Add(int a, int b);
// Function definition tells the compiler what exactly the function does.
// We specify the body of the function here.
// A function definition is also a function declaration.
// Function defition can be placed anywhere, it doesn't have to be before
// the function call, unless it's also your function declaration (no
// "pre-declaration" provided like above)
int Add(int a, int b)
{
return a + b;
}
int main()
{
int a = 2;
int b = 3;
int sum = Add(a, b); // This is a function call, when you provide the function name and the arguments
printf("%d + %d = %d\n", a, b, sum); // This is also a function call, but printf is declared in stdio.h
return 0;
}