Last updated : July 27, 2026

Functions Tutorials

Programming

Functions in C

A function is a named block of code that performs a specific task. Functions help us divide a large program into smaller and manageable parts.

A function can:

  • Accept input values (parameters).

  • Perform a specific task.

  • Return a value if needed.

Functions make programs easier to read, maintain, and reuse.


Why Use Functions?

Without functions, we may have to write the same code multiple times. Functions allow us to write the logic once and use it whenever required.

Benefits of Functions

  • Reduce code duplication.

  • Improve code readability.

  • Make programs easier to maintain.

  • Help in debugging and testing.

  • Promote code reusability.

  • Divide large programs into smaller modules.


Example of Function

#include <stdio.h>

// Function definition
int square(int x)
{
    return x * x;
}

int main()
{
    int result = square(5);

    printf("Square of 5 is: %d", result);

    return 0;
}

Output

Square of 5 is: 25

In the above example, the square() function receives a number, calculates its square, and returns the result.


How Functions Work in C

When a function is called:

  1. Control moves to the function.

  2. The function executes its statements.

  3. If a return statement exists, a value is returned.

  4. Control returns to the calling function.


Function Syntax

return_type function_name(parameter_list)
{
    // function body
}

Return Type

The return type specifies the type of value returned by the function.

Examples:

int
float
char
double
void

Use void when the function does not return anything.


Function Name

The function name identifies the function.

Example:

calculateSum()
printMessage()
square()

A function name follows the same naming rules as variables.


Parameters

Parameters are input values passed to a function.

Example:

int add(int a, int b)

Here, a and b are parameters.


Function Body

The function body contains the statements that execute when the function is called.

Example:

{
    return a + b;
}

Function Declaration

A function declaration informs the compiler about the function before it is used.

It specifies:

  • Function name

  • Return type

  • Parameters

A declaration does not contain the function body.

Syntax

int add(int a, int b);

This statement only tells the compiler that a function named add exists.


Function Definition

A function definition contains the actual implementation of the function.

Example

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

This code tells the compiler what the function actually does.


Why Function Declaration is Needed?

If a function is defined after the main() function, the compiler must know about it before it is called.

For this reason, we use function declarations.

Example

#include <stdio.h>

int add(int, int);

int main()
{
    printf("%d", add(5, 3));

    return 0;
}

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

Without the declaration, the compiler may generate an error.


Calling a Function

A function is executed by calling its name followed by parentheses.

Example

#include <stdio.h>

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

int main()
{
    int result = add(5, 3);

    printf("The sum is: %d", result);

    return 0;
}

Output

The sum is: 8

Functions can be called multiple times from different parts of a program.


Types of Functions in C

Functions in C are divided into two main categories.

Library Functions

Library functions are predefined functions provided by C.

Examples:

printf()
scanf()
sqrt()
strlen()

These functions are available through header files.

Example:

#include <stdio.h>
#include <math.h>

User-Defined Functions

User-defined functions are created by programmers according to program requirements.

Example:

int multiply(int a, int b)
{
    return a * b;
}

Types of User-Defined Functions

User-defined functions are commonly classified into four types.


1. Function with No Arguments and No Return Value

This function neither accepts input nor returns output.

Example

#include <stdio.h>

void greet()
{
    printf("Welcome to C Programming");
}

int main()
{
    greet();

    return 0;
}

2. Function with Arguments and No Return Value

This function accepts input values but does not return anything.

Example

#include <stdio.h>

void displaySum(int a, int b)
{
    printf("Sum = %d", a + b);
}

int main()
{
    displaySum(5, 3);

    return 0;
}

3. Function with No Arguments and Return Value

This function does not accept input but returns a value.

Example

#include <stdio.h>

int getNumber()
{
    return 100;
}

int main()
{
    int num = getNumber();

    printf("%d", num);

    return 0;
}

4. Function with Arguments and Return Value

This is the most commonly used type of function.

It accepts input and returns a result.

Example

#include <stdio.h>

int multiply(int a, int b)
{
    return a * b;
}

int main()
{
    int result = multiply(5, 4);

    printf("%d", result);

    return 0;
}

Output

20

Memory Management of Functions

Whenever a function is called, memory is allocated for that function in a special area called the Function Call Stack.

The stack stores:

  • Parameters

  • Local variables

  • Return address

When the function finishes execution, its memory is automatically released.

This process helps manage memory efficiently.


Advantages of Functions

  • Reduce code duplication.

  • Improve program readability.

  • Simplify debugging.

  • Make programs modular.

  • Enable code reuse.

  • Improve maintainability.


Disadvantages of Functions

  • Every function call requires additional memory.

  • Frequent function calls may slightly reduce performance.

  • Too many small functions can make code harder to follow.

  • Sharing data between functions may require parameters or global variables.


Best Practices for Writing Functions

  • Give meaningful names to functions.

  • Keep functions small and focused on a single task.

  • Avoid writing very long functions.

  • Use parameters instead of global variables whenever possible.

  • Add comments when necessary.


Summary

  • A function is a reusable block of code that performs a specific task.

  • Functions help reduce code duplication and improve readability.

  • Every function has a return type, name, parameters, and body.

  • Function declarations tell the compiler about a function.

  • Function definitions contain the actual implementation.

  • Functions can be library functions or user-defined functions.

  • User-defined functions can be categorized based on arguments and return values.

  • Functions make programs modular, organized, and easier to maintain.

Job PortalJobs