SlideShare a Scribd company logo
Functions
08/23/151
08/23/152
Advantages :
 Program writing becomes easy
 Program becomes easy to understand
 Modification in large program becomes easy
 Modularity comes in program when we use function
08/23/153
Calling to a function.
message();
main( )
{
message( ) ;
printf ( "nHello!" ) ;
}
message( )
{
printf ( "nJUET..." ) ;
}
And here’s the output...
JUET
Hello! 08/23/154
Calling to a function(Cont…)
When main function calls message() the control passes to the
function message( ). The activity of main( ) is temporarily
suspended; it falls asleep while the message( ) function wakes up and
goes to work. When the message( ) function runs out of statements
to execute, the control returns to main( ), which comes to life again
and begins executing its code at the exact point where it left off.
Thus, main( ) becomes the ‘calling’ function, whereas message( )
becomes the ‘called’ function.
08/23/155
Cont…
main( )
{
printf ( "nI am in main" ) ;
italy( ) ;
brazil( ) ;
argentina( ) ;
}
italy( ){
printf ( "nI am in italy" ) ;
}
brazil( ){
printf ( "nI am in brazil" ) ;
}
argentina( ){
printf ( "nI am in argentina" ) ;
}
08/23/156
I am in main
I am in italy
I am in brazil
I am in argentina
Function Declaration
Declaration Syntax:
Return_Type Function_Name(argument_list);
 Return_Type can be any of data type like char, int, float, double,
array, pointer etc.
 argument_list can also be any of data type like char, int, float,
double, array, pointer etc.
 Declaration must be before the call of function in main
function
Example: int add(int a, int b);
08/23/157
Function Definition
08/23/158
Function Call
Call Syntax:
Function_Name(argument_list);
08/23/159
Sample Example
#include<stdio.h>
int sum (int,int); //function declaration
void main(){
int p;
p=sum(3,4); //function call
printf(“%d”,p);
}
int sum( int a,int b){
int s; //function body
s=a+b;
return s; //function returning a value
} 08/23/1510
Passing arguments to functions
In programming, argument(parameter) refers to data that is
passed to function(function definition) while calling function.
In following example two variable, num1 and num2 are passed to
function during function call and these arguments are accepted by
arguments a and b in function definition. 
08/23/1511
Cont…
 Formal Parameter :Parameter written in Function Definition is Called “Formal
Parameter”.
 In last example a and b are formal parameters.
 There are two methods of declaring the formal arguments.
1. Kernighan and Ritchie (or just K & R) method.
calsum ( x, y, z )
int x, y, z ;
2. ANSI method
calsum ( int x, int y, int z )
 This method is called ANSI method and is more commonlyused these days.
 Actual Parameter :Parameter written in Function Call is Called “Actual
Parameter”.
 In last example num1 and num2 were actual parameters. 08/23/1512
Example: parameter passing
/* Sending and receiving values between functions */
main( ){
int a, b, c, sum ;
printf ( "nEnter any three numbers " ) ;
scanf ( "%d %d %d", &a, &b, &c ) ;
sum = calsum ( a, b, c ) ;
printf ( "nSum = %d", sum ) ;
}
calsum ( x, y, z )
int x, y, z ;
{
int d ;
d = x + y + z ;
return ( d ) ;
}
And here is the output...
Enter any three numbers 10 20 30
Sum = 60 08/23/1513
Return statement
In the message() function of previous example the moment closing
brace ( } ) of the called function was encountered the control returned
to the calling function. No separate return statement was necessary to
send back the control.
This approach is fine if the called function is not going to return any
meaningful value to the calling function.
In the above program, however, we want to return the sum of x, y
and z. Therefore, it is necessary to use the return statement.
 The return statement serves two purposes:
(1) On executing the return statement it immediately transfers the control back to the
calling program.
(2) It returns the value present in the parentheses after return, to the calling function.
In the above program the value of sum of three numbers is being returned.
08/23/1514
Return statement(Cont…)
 There is no restriction on the number of return statements that may be present in a
function. Also, the return statement need not always be present at the end of the
called function.
 The following program illustrates these facts.
fun( ){
char ch ;
printf ( "nEnter any alphabet " ) ;
scanf ( "%c", &ch ) ;
if ( ch >= 65 && ch <= 90 )
return ( ch ) ;
else
return ( ch + 32 ) ;
}
 In this function different return statements will be executed depending on whether
ch is capital or not.
08/23/1515
Return statement(Cont…)
 If a meaningful value is returned then it should be accepted in the calling program by
equating the called function to some variable. For example,
 sum = calsum ( a, b, c ) ;
 All the following are valid return statements.
 return ( a ) ;
 return ( 23 ) ;
 return ( 12.34 ) ;
 return ;
 A function can return only one value at a time. Thus, the following statements are
invalid.
return ( a, b ) ;//this will return value of b
return ( x, 12 ) ;
 There is a way to get around this limitation, which would be discussed later when we
learn pointers.
08/23/1516
Calling Convention
Calling convention indicates the order in which arguments are
passed to a function when a function call is encountered. There
are two possibilities here:
(a) Arguments might be passed from left to right.
(b) Arguments might be passed from right to left.
C language follows the second order.
Consider the following function call:
fun (a, b, c, d ) ;
In this call it doesn’t matter whether the arguments are passed
from left to right or from right to left.
08/23/1517
Calling Convention(Cont…)
08/23/1518
•However, in some function call the order of passing arguments
becomes an important consideration.
•For example:
Ways to Pass Parameters
Call By Value:In this approach we pass copy of actual variables
in function as a parameter.
Hence any modification on parameters inside the function will not
reflect in the actual variable.
08/23/1519
Ways to Pass
Parameters(Cont..)
Call By Reference:In this approach we pass memory address of
actual variables in function as a parameter.
Hence any modification on parameters inside the function will
reflect in the actual variable.
08/23/1520
Swap two variables without using a
third variable
#include<stdio.h>
void swap(int *,int *);
void main(){
int a=5,b=10;
swap(&a,&b);
printf("%d %d",a,b);
}
void swap(int *a,int *b){
*a=*a+*b;
*b=*a-*b;
*a=*a-*b;
}
Types of Function
1st :Take something and Return something (Function
with return value and parameters)
Example: printf, scanf , strlen, strcmp etc.
2nd : Take something and Return nothing (Function
with no return value but parameters)
Example: delay,
3rd : Take nothing and return something (Function with
return value but no parameter)
Example: getch,
4th : Take nothing and return nothing (Function with
no return value and no parameter)
Example: clrscr,
08/23/1522
Take something and Return
something
08/23/1523
Take something and Return
nothing
08/23/1524
Take nothing and return
something
08/23/1525
Take nothing and return
nothing
08/23/1526
Nesting of function call
 If we are calling any function inside another function call is known as nesting
function call.
 Sometime it converts a difficult program in easy one.
 For example 1:
int max(int x,int y){
return x>y?x:y;
}
int fact(int);
void main(){
int a,b,c;
scanf(“%d%d”,&a,&b);
c=fact(max(a,b));
print(“factorial of %d is %d”,max(a,b),c);
}
08/23/1527
int fact(int a)
{
int fact=1;
while(a>0)
{
fact=fact*a;
a--;
}
return fact; 
}
O/P:6
7
factorial of 7 is 5040
Example 2 Nested calling
08/23/1528
Problem
Write a function which receives a float and an int from
main( ), finds the product of these two and returns the
product which is printed through main( ).
08/23/1529

More Related Content

PPSX
Function in c
PPT
C++ functions presentation by DHEERAJ KATARIA
PPT
lets play with "c"..!!! :):)
PDF
C standard library functions
PPTX
Types of function call
PPSX
Functions in c
PPTX
Call by value
PPTX
C function
Function in c
C++ functions presentation by DHEERAJ KATARIA
lets play with "c"..!!! :):)
C standard library functions
Types of function call
Functions in c
Call by value
C function

What's hot (20)

PPTX
Function in C program
PPTX
Function in c
PPSX
C programming function
PDF
Programming Fundamentals Decisions
PPTX
Functionincprogram
ODP
Function
PPTX
Functions in C
PPTX
Functions in c
PDF
M11 operator overloading and type conversion
PPT
Lecture#7 Call by value and reference in c++
PPTX
Functions in C++
PPTX
Function in c program
PDF
Programming Fundamentals Functions in C and types
PPTX
Function in c program
PPTX
C++ programming function
PDF
PPTX
PPTX
functions in C and types
DOCX
Chapter 5
PPT
Lecture 4
Function in C program
Function in c
C programming function
Programming Fundamentals Decisions
Functionincprogram
Function
Functions in C
Functions in c
M11 operator overloading and type conversion
Lecture#7 Call by value and reference in c++
Functions in C++
Function in c program
Programming Fundamentals Functions in C and types
Function in c program
C++ programming function
functions in C and types
Chapter 5
Lecture 4
Ad

Similar to 11 functions (20)

PPTX
Unit-III.pptx
PPTX
unit_2 (1).pptx
PPTX
unit_2.pptx
PPTX
Unit_5Functionspptx__2022_12_27_10_47_17 (1).pptx
PPTX
Detailed concept of function in c programming
PDF
PDF
Programming in C Functions PPT Presentation.pdf
PPT
Functions and pointers_unit_4
DOC
Unit 4 (1)
PPTX
PDF
VIT351 Software Development VI Unit1
PDF
Functions
PPT
RECURSION IN C
PPT
Recursion in C
PPTX
Functions in C.pptx
PPT
eee2-day4-structures engineering college
PPT
User Defined Functions in C
PDF
PSPC-UNIT-4.pdf
PPT
16717 functions in C++
 
DOCX
Introduction to c programming
Unit-III.pptx
unit_2 (1).pptx
unit_2.pptx
Unit_5Functionspptx__2022_12_27_10_47_17 (1).pptx
Detailed concept of function in c programming
Programming in C Functions PPT Presentation.pdf
Functions and pointers_unit_4
Unit 4 (1)
VIT351 Software Development VI Unit1
Functions
RECURSION IN C
Recursion in C
Functions in C.pptx
eee2-day4-structures engineering college
User Defined Functions in C
PSPC-UNIT-4.pdf
16717 functions in C++
 
Introduction to c programming
Ad

More from Rohit Shrivastava (13)

PPT
1 introduction-to-computer
PPTX
17 structure-and-union
PPTX
16 dynamic-memory-allocation
PPT
14 strings
PPT
PPT
8 number-system
PPT
7 decision-control
PPT
6 operators-in-c
PPT
5 introduction-to-c
PPT
3 algorithm-and-flowchart
PPT
2 memory-and-io-devices
PPT
4 evolution-of-programming-languages
PPT
6 operators-in-c
1 introduction-to-computer
17 structure-and-union
16 dynamic-memory-allocation
14 strings
8 number-system
7 decision-control
6 operators-in-c
5 introduction-to-c
3 algorithm-and-flowchart
2 memory-and-io-devices
4 evolution-of-programming-languages
6 operators-in-c

Recently uploaded (20)

PDF
Power and position in leadershipDOC-20250808-WA0011..pdf
PPT
Chapter four Project-Preparation material
PDF
IFRS Notes in your pocket for study all the time
PPTX
Amazon (Business Studies) management studies
PDF
WRN_Investor_Presentation_August 2025.pdf
DOCX
unit 1 COST ACCOUNTING AND COST SHEET
PDF
Traveri Digital Marketing Seminar 2025 by Corey and Jessica Perlman
PDF
Nidhal Samdaie CV - International Business Consultant
PDF
Training And Development of Employee .pdf
PPTX
Probability Distribution, binomial distribution, poisson distribution
PDF
Chapter 5_Foreign Exchange Market in .pdf
PPTX
Lecture (1)-Introduction.pptx business communication
PDF
Dr. Enrique Segura Ense Group - A Self-Made Entrepreneur And Executive
PDF
DOC-20250806-WA0002._20250806_112011_0000.pdf
PDF
SIMNET Inc – 2023’s Most Trusted IT Services & Solution Provider
PDF
Deliverable file - Regulatory guideline analysis.pdf
PDF
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
PPTX
The Marketing Journey - Tracey Phillips - Marketing Matters 7-2025.pptx
PPTX
job Avenue by vinith.pptxvnbvnvnvbnvbnbmnbmbh
PDF
MSPs in 10 Words - Created by US MSP Network
Power and position in leadershipDOC-20250808-WA0011..pdf
Chapter four Project-Preparation material
IFRS Notes in your pocket for study all the time
Amazon (Business Studies) management studies
WRN_Investor_Presentation_August 2025.pdf
unit 1 COST ACCOUNTING AND COST SHEET
Traveri Digital Marketing Seminar 2025 by Corey and Jessica Perlman
Nidhal Samdaie CV - International Business Consultant
Training And Development of Employee .pdf
Probability Distribution, binomial distribution, poisson distribution
Chapter 5_Foreign Exchange Market in .pdf
Lecture (1)-Introduction.pptx business communication
Dr. Enrique Segura Ense Group - A Self-Made Entrepreneur And Executive
DOC-20250806-WA0002._20250806_112011_0000.pdf
SIMNET Inc – 2023’s Most Trusted IT Services & Solution Provider
Deliverable file - Regulatory guideline analysis.pdf
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
The Marketing Journey - Tracey Phillips - Marketing Matters 7-2025.pptx
job Avenue by vinith.pptxvnbvnvnvbnvbnbmnbmbh
MSPs in 10 Words - Created by US MSP Network

11 functions

  • 3. Advantages :  Program writing becomes easy  Program becomes easy to understand  Modification in large program becomes easy  Modularity comes in program when we use function 08/23/153
  • 4. Calling to a function. message(); main( ) { message( ) ; printf ( "nHello!" ) ; } message( ) { printf ( "nJUET..." ) ; } And here’s the output... JUET Hello! 08/23/154
  • 5. Calling to a function(Cont…) When main function calls message() the control passes to the function message( ). The activity of main( ) is temporarily suspended; it falls asleep while the message( ) function wakes up and goes to work. When the message( ) function runs out of statements to execute, the control returns to main( ), which comes to life again and begins executing its code at the exact point where it left off. Thus, main( ) becomes the ‘calling’ function, whereas message( ) becomes the ‘called’ function. 08/23/155
  • 6. Cont… main( ) { printf ( "nI am in main" ) ; italy( ) ; brazil( ) ; argentina( ) ; } italy( ){ printf ( "nI am in italy" ) ; } brazil( ){ printf ( "nI am in brazil" ) ; } argentina( ){ printf ( "nI am in argentina" ) ; } 08/23/156 I am in main I am in italy I am in brazil I am in argentina
  • 7. Function Declaration Declaration Syntax: Return_Type Function_Name(argument_list);  Return_Type can be any of data type like char, int, float, double, array, pointer etc.  argument_list can also be any of data type like char, int, float, double, array, pointer etc.  Declaration must be before the call of function in main function Example: int add(int a, int b); 08/23/157
  • 10. Sample Example #include<stdio.h> int sum (int,int); //function declaration void main(){ int p; p=sum(3,4); //function call printf(“%d”,p); } int sum( int a,int b){ int s; //function body s=a+b; return s; //function returning a value } 08/23/1510
  • 11. Passing arguments to functions In programming, argument(parameter) refers to data that is passed to function(function definition) while calling function. In following example two variable, num1 and num2 are passed to function during function call and these arguments are accepted by arguments a and b in function definition.  08/23/1511
  • 12. Cont…  Formal Parameter :Parameter written in Function Definition is Called “Formal Parameter”.  In last example a and b are formal parameters.  There are two methods of declaring the formal arguments. 1. Kernighan and Ritchie (or just K & R) method. calsum ( x, y, z ) int x, y, z ; 2. ANSI method calsum ( int x, int y, int z )  This method is called ANSI method and is more commonlyused these days.  Actual Parameter :Parameter written in Function Call is Called “Actual Parameter”.  In last example num1 and num2 were actual parameters. 08/23/1512
  • 13. Example: parameter passing /* Sending and receiving values between functions */ main( ){ int a, b, c, sum ; printf ( "nEnter any three numbers " ) ; scanf ( "%d %d %d", &a, &b, &c ) ; sum = calsum ( a, b, c ) ; printf ( "nSum = %d", sum ) ; } calsum ( x, y, z ) int x, y, z ; { int d ; d = x + y + z ; return ( d ) ; } And here is the output... Enter any three numbers 10 20 30 Sum = 60 08/23/1513
  • 14. Return statement In the message() function of previous example the moment closing brace ( } ) of the called function was encountered the control returned to the calling function. No separate return statement was necessary to send back the control. This approach is fine if the called function is not going to return any meaningful value to the calling function. In the above program, however, we want to return the sum of x, y and z. Therefore, it is necessary to use the return statement.  The return statement serves two purposes: (1) On executing the return statement it immediately transfers the control back to the calling program. (2) It returns the value present in the parentheses after return, to the calling function. In the above program the value of sum of three numbers is being returned. 08/23/1514
  • 15. Return statement(Cont…)  There is no restriction on the number of return statements that may be present in a function. Also, the return statement need not always be present at the end of the called function.  The following program illustrates these facts. fun( ){ char ch ; printf ( "nEnter any alphabet " ) ; scanf ( "%c", &ch ) ; if ( ch >= 65 && ch <= 90 ) return ( ch ) ; else return ( ch + 32 ) ; }  In this function different return statements will be executed depending on whether ch is capital or not. 08/23/1515
  • 16. Return statement(Cont…)  If a meaningful value is returned then it should be accepted in the calling program by equating the called function to some variable. For example,  sum = calsum ( a, b, c ) ;  All the following are valid return statements.  return ( a ) ;  return ( 23 ) ;  return ( 12.34 ) ;  return ;  A function can return only one value at a time. Thus, the following statements are invalid. return ( a, b ) ;//this will return value of b return ( x, 12 ) ;  There is a way to get around this limitation, which would be discussed later when we learn pointers. 08/23/1516
  • 17. Calling Convention Calling convention indicates the order in which arguments are passed to a function when a function call is encountered. There are two possibilities here: (a) Arguments might be passed from left to right. (b) Arguments might be passed from right to left. C language follows the second order. Consider the following function call: fun (a, b, c, d ) ; In this call it doesn’t matter whether the arguments are passed from left to right or from right to left. 08/23/1517
  • 18. Calling Convention(Cont…) 08/23/1518 •However, in some function call the order of passing arguments becomes an important consideration. •For example:
  • 19. Ways to Pass Parameters Call By Value:In this approach we pass copy of actual variables in function as a parameter. Hence any modification on parameters inside the function will not reflect in the actual variable. 08/23/1519
  • 20. Ways to Pass Parameters(Cont..) Call By Reference:In this approach we pass memory address of actual variables in function as a parameter. Hence any modification on parameters inside the function will reflect in the actual variable. 08/23/1520
  • 21. Swap two variables without using a third variable #include<stdio.h> void swap(int *,int *); void main(){ int a=5,b=10; swap(&a,&b); printf("%d %d",a,b); } void swap(int *a,int *b){ *a=*a+*b; *b=*a-*b; *a=*a-*b; }
  • 22. Types of Function 1st :Take something and Return something (Function with return value and parameters) Example: printf, scanf , strlen, strcmp etc. 2nd : Take something and Return nothing (Function with no return value but parameters) Example: delay, 3rd : Take nothing and return something (Function with return value but no parameter) Example: getch, 4th : Take nothing and return nothing (Function with no return value and no parameter) Example: clrscr, 08/23/1522
  • 23. Take something and Return something 08/23/1523
  • 24. Take something and Return nothing 08/23/1524
  • 25. Take nothing and return something 08/23/1525
  • 26. Take nothing and return nothing 08/23/1526
  • 27. Nesting of function call  If we are calling any function inside another function call is known as nesting function call.  Sometime it converts a difficult program in easy one.  For example 1: int max(int x,int y){ return x>y?x:y; } int fact(int); void main(){ int a,b,c; scanf(“%d%d”,&a,&b); c=fact(max(a,b)); print(“factorial of %d is %d”,max(a,b),c); } 08/23/1527 int fact(int a) { int fact=1; while(a>0) { fact=fact*a; a--; } return fact;  } O/P:6 7 factorial of 7 is 5040
  • 28. Example 2 Nested calling 08/23/1528
  • 29. Problem Write a function which receives a float and an int from main( ), finds the product of these two and returns the product which is printed through main( ). 08/23/1529