C Function Declaration and Definition: Key Concepts Explained

Understand the fundamental components of functions in C programming, which include declaration and definition. The function declaration specifies its name, return type, and parameters, while the definition contains the code that executes when the function is called. This guide will help you grasp these concepts and enhance your programming skills.



C Function Declaration and Definition

In C programming, functions consist of two key components: declaration and definition. The declaration specifies the function's name, return type, and parameters (if any). The definition contains the actual code that runs when the function is called.

Basic Example of Function Declaration and Definition

Let's start with a simple example where a function is created and then called from the main function:

Example

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

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

I just got executed!

What is a Function Declaration and Definition?

  • Function Declaration: Specifies the name, return type, and parameters of a function. Example: void myFunction();
  • Function Definition: Contains the actual code of the function that gets executed when the function is called.

For code optimization, it is a good practice to separate the declaration and definition of a function, which makes the code more readable and organized. The function declaration typically appears above main(), while the definition appears below main().

Example of Separating Function Declaration and Definition

Here's how to separate the function declaration from the definition:

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!");
}
Output

I just got executed!

Using Parameters in C Functions

Functions can also accept parameters and return values. Here's an example that takes two parameters and returns their sum:

Example

int myFunction(int a, int b) {
    return a + b;
}

int main() {
    int result = myFunction(8, 2);
    printf("Result is = %d", result);
    return 0;
}
Output

Result is = 10

It is considered good practice to write the function declaration above main() and the function definition below main(), like this:

Example

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

// The main method
int main() {
    int result = myFunction(8, 2);
    printf("Result is = %d", result);
    return 0;
}

// Function definition
int myFunction(int a, int b) {
    return a + b;
}
Output

Result is = 10

Calling One Function from Another

In C, one function can call another. Here's an example where one function calls a second function:

Example

// Declare two functions
void myFunction();
void myOtherFunction();

int main() {
    myFunction(); // call myFunction
    return 0;
}

// Define myFunction
void myFunction() {
    printf("This is myFunction.\n");
    myOtherFunction(); // call myOtherFunction
}

// Define myOtherFunction
void myOtherFunction() {
    printf("This is myOtherFunction.\n");
}
Output

This is myFunction.
This is myOtherFunction.

In the above example, myFunction() calls myOtherFunction(), demonstrating how functions can call each other in C.