Functions in C

The function in C language is also known as procedure or subroutine in other programming languages.
To perform any task, we can create function. A function can be called many times. It provides modularity and code reusability.


Advantage of functions in C

There are many advantages of functions.
1) Code Reusability
2) Code optimization

Types of Functions

There are two types of functions in C programming:
  1. Library Functions: are the functions which are declared in the C header files such as scanf(), printf(), gets(), puts(), ceil(), floor() etc.
  2. User-defined functions: are the functions which are created by the C programmer, so that he/she can use it many times. It reduces complexity of a big program and optimizes the code.
  3. Declaration of a function

    The syntax of creating function in c language is given below:
    return_type function_name(data_type parameter...)  {  
        //code to be executed  
      } 
    
    Return Value
    A C function may or may not return a value from the function. If you don't have to return any value from the function, use void for the return type.

    Let's see a simple example of C function that doesn't return any value from the function.
    Example without return value:

    void hello ( )  {  
    printf("hello Catchmecoder");  
     }  
    
    If you want to return any value from the function, you need to use any data type such as int, long, char etc. The return type depends on the value to be returned from the function.
    Let's see a simple example of C function that returns int value from the function.
    Example with return value:
    int get ( ) {  
    return 10;  
    }   
    
    In the above example, we have to return 10 as a value, so the return type is int. If you want to return floating-point value (e.g. 10.2, 3.1, 54.5 etc), you need to use float as the return type of the method.
    float get ( ) {  
    return 10.2;  
    }  
    
    Now, you need to call the function, to get the value of the function.

    Parameters in C Function

    A c function may have 0 or more parameters. You can have any type of parameter in C program such as int, float, char etc. The parameters are also known as formal arguments.
    Example of a function that has 0 parameter:
    void hello ( ) {  
    printf ("hello Catchmecoder");  
    }
    
    Example of a function that has 1 parameter:
    int cube(int n) {  
    return n*n*n;  
    }
    
    Example of a function that has 2 parameters:
    int add(int a, int b){  
    return a+b;  
    }

    Calling a function in C

    If a function returns any value, you need to call function to get the value returned from the function. The syntax of calling a function in c programming is given below:
    variable = function_name(arguments...);
    1) variable: The variable is not mandatory. If function return type is void, you must not provide the variable because void functions doesn't return any value.
    2) function_name: The function_name is name of the function to be called.
    3) arguments: You need to provide arguments while calling the C function. It is also known as actual arguments.
    Example to call a function:
    hello(); //calls function that doesn't return a value  
    int value = get( ); //calls function that returns value  
    int value2 = add(20, 30); //calls parameterized function by passing 2 values  

    Example of C function with no return statement

    Let's see the simple program of C function that doesn't return any value from the function.
    #include <stdio.h>
    //defining function    
    void hello( ) {  
    printf("hello Catchmecoder");  
     }  
    void main( ) {    
    hello( );  //calling a function  
    hello( );         
     }      
    Output
    hello Catchmecoder
    hello Catchmecoder
    

    Example of C function with return statement

    Let's see the simple program of function in c language
    #include <stdio.h>
    //defining function    
    int square(int n) {  
    return n*n;  
     }  
    void main( ) {      
    int result1 = 0, result2 = 0;      
    result1 = square(5);    //calling function  
    result2=square(7);    
    printf("%d ",result1);  
    printf("%d ",result2);        
      }      
    Output:   25    49