echo '' ;
C Programming Language

C – Functions

In C programming, functions are essential building blocks for organizing and reusing code.

  • Rule: In C, you cannot define a function inside another function.
  • Rule: But you can call a function inside another function.
  • Rule: Functions cannot return more than one value at a time because, after returning a value, control is passed back to the calling function.
  • Any function, including main(), can call itself recursively.
  • C has two kinds of functions User Defined Functions,  Pr-Defined Libarary Functions.

User – defined functions

What is user-defined function?:

Users can define custom functions as needed at the user level. User-defined functions should follow certain rules.

Syntax

  • User defined function declaration syntax: returntype function_name(type_1, type_2,....); Refer below code
returntype function_name(type_1, type_2,....)
{
      Statement_1;
      Statement_2;
}
  • Function call syntax : function_name ();
  • Function passing arguments(Two Types – Refer below table ) Syntax: function_name (arg_1, arg_2, …);
  • If you have a question like what are the function passing arguments types?, Whats is actual arguments? What is Formal arguments? Here the solution check the below table
Function passing arguments (Two types)Explanation
Actual argumentsActual arguments are comes with arguments when function call.
Formal argumentsFormal arguments or dummy arguments are comes in function definition.

Function Name

  • Function name should declare at only one time, You can follow the same variable name declaration for function name declaration also.
  • If two functions are declared with the same name, it results in an error: “Error: Multiple declaration of function_name().”

Return value

A function can return floating point value, integer, decimal, Boolean,

Return statement:

  • A function may have any number of return statements each returning different values and each return statements will not occur successively.
  • If a function contains two return statements successively, the compiler will generate “Unreachable code” warnings. Check the below code
#include<stdio.h>
int mul(int, int); /* Function prototype */

int main()
{
    int a = 4, b = 3, c;
    c = mul(a, b);
    printf("c = %d\n", c);
    return 0;
}
int mul(int a, int b)
{
   return (a * b);
   return (a - b); /* Warning: Unreachable code */
}

/* Output

c = 12 */

Return Type

  • If a function return type is declared as void it cannot return any value.
  • If return type for a function is not specified, The default return type for a function is int(Integer) .

Type of User Defined functions

  • function with no arguments and no return value.
  • function with arguments and no return value.
  • function with arguments and return value.
  • function with no arguments and return value.

Functions Arguments

  • C can accept upto 127 maximum number of arguments in a function.

Function Call

You call a function either by value or by reference.

Calling FunctionDescriptions
call by valueActual argument value is copied to formal arguments.
call by referenceActual argument address is copied to formal arguments.

Advantage and Disadvantage of user-defined function

Advantage of functionsDisadvantage of functions
Using top-down modular programming.Difficult to understand function structure.
User can understand easily when separate many function.Users can’t understand easily some like recursive function.
Reduce the code repetition.Program execution control sequence is not in run time
Can change function into program.Can’t return more than one value.
Program testing is very simple.can’t see separate function use.

Recursive function

  • When a recursive call occurs, the function or process duplicates itself and then executes that function, resulting in time and space constraints.
  • A loop involves no recursive calls, saving significant time and space.
  • The stack may lead to a stack overflow due to excessive recursive calls as it stores the return address of each function call when invoked.
  • After some time, the stack memory becomes fully occupied, triggering a stack overflow error.


NEXT

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Discover more from ArunEworld

Subscribe now to keep reading and get access to the full archive.

Continue reading