Tutorials References Exercises Videos Menu
Free Website Get Certified Upgrade

C Function Declaration and Definition


Function Declaration and Definition

You just learned from the previous chapters that you can create and call a function in the following way:

Example

// Create a function
void myFunction() {
  printf("I just got executed!");
}

int main() {
  myFunction(); // call the function
  return 0;
}
Try it Yourself »

A function consist of two parts:

  • Declaration: the function's name, return type, and parameters (if any)
  • Definition: the body of the function (code to be executed)
void myFunction() { // declaration
  // the body of the function (definition)
}

For code optimization, it is recommended to separate the declaration and the definition of the function.

You will often see C programs that have function declaration above main(), and function definition below main(). This will make the code better organized and easier to read:

Example

// Function declaration
void myFunction();

// The main method
int main() {
  myFunction();  // call the function
  return 0;
}

// Function definition
void myFunction() {
  printf("I just got executed!");
}
Try it Yourself »

Another Example

If we use the example from the previous chapter regarding function parameters and return values:

Example

int myFunction(int x, int y) {
  return x + y;
}

int main() {
  int result = myFunction(5, 3);
  printf("Result is = %d", result);

  return 0;
}
// Outputs 8 (5 + 3)
Try it Yourself »

It is considered good practice to write it like this instead:

Example

// Function declaration
int myFunction(int, int);

// The main method
int main() {
  int result = myFunction(5, 3); // call the function
  printf("Result is = %d", result);

  return 0;
}

// Function definition
int myFunction(int x, int y) {
  return x + y;
}
Try it Yourself »