Methods of calling funcctions in C:
===================================
 1) Call by value:
 =================
    In call by value, only the value will be passed.If any modification is done for the formal parameters within a function it does not reflect on the actual parameters.
 2) Call by reference:
 =====================
    In pass by reference both, value and adddress of the variable will be passed. If any modification is done by a formal parameters within a function, it reflects on actual parameters.
 3) Call by value_Result
 =======================
 
 4) Call by result
 =================
 5) Call by constatnt value
 ==========================
    
 
 
/* 1. Call by value*/
#include <stdio.h>
 
/* function declaration */
void swap(int x, int y);
/* function definition to swap the values */
void swap(int x, int y)
{
   int temp;
   temp = x; /* save the value of x */
   x = y;    /* put y into x */
   y = temp; /* put temp into y */
  
   return;
}
 
int main ()
{
   /* local variable definition */
   int a = 100;
   int b = 200;
 
   printf("Before swap, value of a : %d\n", a );
   printf("Before swap, value of b : %d\n", b );
 
   /* calling a function to swap the values */
   swap(a, b);
 
   printf("After swap, value of a : %d\n", a );
   printf("After swap, value of b : %d\n", b );
   printf("Did not swap. ");
 
   return 0;
}
 
/* 2. Call by reference*/
#include <stdio.h>
#include <conio.h>
/* function definition to swap the values */
void swap(int *a, int *b)
{
   int temp;
   temp = *a; /* save the value of x */
   *a = *b;    /* put y into x */
   *b = temp; /* put temp into y */
   return;
}
int main ()
{
   /* local variable definition */
   int a = 100;
   int b = 200;
   printf("Before swap, value of a : %d\n", a );
   printf("Before swap, value of b : %d\n", b );
   /* calling a function to swap the values */
   swap(&a, &b);
   printf("After swap, value of a : %d\n", a );
   printf("After swap, value of b : %d\n", b );
   return 0;
}
 
/* 3. Call by value_result*/
#include <stdio.h>
#include <conio.h>
/* function declaration */
int area(int l, int w);
 
/* function definition to calculate the area */
int area(int l, int w)
{
   return(l*w);
}
 
int main ()
{
   /* local variable definition */
   int l = 12;
   int w = 5;
 
   printf("area : %d\n", area(l,w) );
   
   return 0;
}
 
/* 4. Call by result*/
#include <stdio.h>
#include <conio.h>
int a=3,b=5;
/* function definition to calculate the sum */
int sum()
{
   return(a+b);
}
 
int main ()
{
   /* local variable definition */
   int result;
   
   result=sum();
   printf("Sum : %d\n", result );
  
   return 0;
}
 
/* 5. Call by constatnt value*/
#include <stdio.h>
#include <conio.h>
/* function definition to calculate the area */
float area(const float pi, float r)
{
   return(pi*r*r);
}
 
int main ()
{
   /* local variable definition */
   const float pi=3.14;
   float r=2.5;
 
   printf("Area : %.2f\n", area(pi,r) );
  
   return 0;
}
 
 
No comments:
Post a Comment